38616 lines
1.1 MiB
38616 lines
1.1 MiB
// Code generated by command: avogen -output zctors.go ctors. DO NOT EDIT.
|
|
|
|
package x86
|
|
|
|
import (
|
|
intrep "github.com/mmcloughlin/avo/ir"
|
|
"github.com/mmcloughlin/avo/operand"
|
|
)
|
|
|
|
// ADCB: Add with Carry.
|
|
//
|
|
// Forms:
|
|
//
|
|
// ADCB imm8 al
|
|
// ADCB imm8 m8
|
|
// ADCB imm8 r8
|
|
// ADCB m8 r8
|
|
// ADCB r8 m8
|
|
// ADCB r8 r8
|
|
func ADCB(imr, amr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcADCB.Forms(), sffxs{}, []operand.Op{imr, amr})
|
|
}
|
|
|
|
// ADCL: Add with Carry.
|
|
//
|
|
// Forms:
|
|
//
|
|
// ADCL imm32 eax
|
|
// ADCL imm32 m32
|
|
// ADCL imm32 r32
|
|
// ADCL imm8 m32
|
|
// ADCL imm8 r32
|
|
// ADCL m32 r32
|
|
// ADCL r32 m32
|
|
// ADCL r32 r32
|
|
func ADCL(imr, emr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcADCL.Forms(), sffxs{}, []operand.Op{imr, emr})
|
|
}
|
|
|
|
// ADCQ: Add with Carry.
|
|
//
|
|
// Forms:
|
|
//
|
|
// ADCQ imm32 m64
|
|
// ADCQ imm32 r64
|
|
// ADCQ imm32 rax
|
|
// ADCQ imm8 m64
|
|
// ADCQ imm8 r64
|
|
// ADCQ m64 r64
|
|
// ADCQ r64 m64
|
|
// ADCQ r64 r64
|
|
func ADCQ(imr, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcADCQ.Forms(), sffxs{}, []operand.Op{imr, mr})
|
|
}
|
|
|
|
// ADCW: Add with Carry.
|
|
//
|
|
// Forms:
|
|
//
|
|
// ADCW imm16 ax
|
|
// ADCW imm16 m16
|
|
// ADCW imm16 r16
|
|
// ADCW imm8 m16
|
|
// ADCW imm8 r16
|
|
// ADCW m16 r16
|
|
// ADCW r16 m16
|
|
// ADCW r16 r16
|
|
func ADCW(imr, amr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcADCW.Forms(), sffxs{}, []operand.Op{imr, amr})
|
|
}
|
|
|
|
// ADCXL: Unsigned Integer Addition of Two Operands with Carry Flag.
|
|
//
|
|
// Forms:
|
|
//
|
|
// ADCXL m32 r32
|
|
// ADCXL r32 r32
|
|
func ADCXL(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcADCXL.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// ADCXQ: Unsigned Integer Addition of Two Operands with Carry Flag.
|
|
//
|
|
// Forms:
|
|
//
|
|
// ADCXQ m64 r64
|
|
// ADCXQ r64 r64
|
|
func ADCXQ(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcADCXQ.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// ADDB: Add.
|
|
//
|
|
// Forms:
|
|
//
|
|
// ADDB imm8 al
|
|
// ADDB imm8 m8
|
|
// ADDB imm8 r8
|
|
// ADDB m8 r8
|
|
// ADDB r8 m8
|
|
// ADDB r8 r8
|
|
func ADDB(imr, amr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcADDB.Forms(), sffxs{}, []operand.Op{imr, amr})
|
|
}
|
|
|
|
// ADDL: Add.
|
|
//
|
|
// Forms:
|
|
//
|
|
// ADDL imm32 eax
|
|
// ADDL imm32 m32
|
|
// ADDL imm32 r32
|
|
// ADDL imm8 m32
|
|
// ADDL imm8 r32
|
|
// ADDL m32 r32
|
|
// ADDL r32 m32
|
|
// ADDL r32 r32
|
|
func ADDL(imr, emr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcADDL.Forms(), sffxs{}, []operand.Op{imr, emr})
|
|
}
|
|
|
|
// ADDPD: Add Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// ADDPD m128 xmm
|
|
// ADDPD xmm xmm
|
|
func ADDPD(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcADDPD.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// ADDPS: Add Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// ADDPS m128 xmm
|
|
// ADDPS xmm xmm
|
|
func ADDPS(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcADDPS.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// ADDQ: Add.
|
|
//
|
|
// Forms:
|
|
//
|
|
// ADDQ imm32 m64
|
|
// ADDQ imm32 r64
|
|
// ADDQ imm32 rax
|
|
// ADDQ imm8 m64
|
|
// ADDQ imm8 r64
|
|
// ADDQ m64 r64
|
|
// ADDQ r64 m64
|
|
// ADDQ r64 r64
|
|
func ADDQ(imr, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcADDQ.Forms(), sffxs{}, []operand.Op{imr, mr})
|
|
}
|
|
|
|
// ADDSD: Add Scalar Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// ADDSD m64 xmm
|
|
// ADDSD xmm xmm
|
|
func ADDSD(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcADDSD.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// ADDSS: Add Scalar Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// ADDSS m32 xmm
|
|
// ADDSS xmm xmm
|
|
func ADDSS(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcADDSS.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// ADDSUBPD: Packed Double-FP Add/Subtract.
|
|
//
|
|
// Forms:
|
|
//
|
|
// ADDSUBPD m128 xmm
|
|
// ADDSUBPD xmm xmm
|
|
func ADDSUBPD(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcADDSUBPD.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// ADDSUBPS: Packed Single-FP Add/Subtract.
|
|
//
|
|
// Forms:
|
|
//
|
|
// ADDSUBPS m128 xmm
|
|
// ADDSUBPS xmm xmm
|
|
func ADDSUBPS(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcADDSUBPS.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// ADDW: Add.
|
|
//
|
|
// Forms:
|
|
//
|
|
// ADDW imm16 ax
|
|
// ADDW imm16 m16
|
|
// ADDW imm16 r16
|
|
// ADDW imm8 m16
|
|
// ADDW imm8 r16
|
|
// ADDW m16 r16
|
|
// ADDW r16 m16
|
|
// ADDW r16 r16
|
|
func ADDW(imr, amr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcADDW.Forms(), sffxs{}, []operand.Op{imr, amr})
|
|
}
|
|
|
|
// ADOXL: Unsigned Integer Addition of Two Operands with Overflow Flag.
|
|
//
|
|
// Forms:
|
|
//
|
|
// ADOXL m32 r32
|
|
// ADOXL r32 r32
|
|
func ADOXL(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcADOXL.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// ADOXQ: Unsigned Integer Addition of Two Operands with Overflow Flag.
|
|
//
|
|
// Forms:
|
|
//
|
|
// ADOXQ m64 r64
|
|
// ADOXQ r64 r64
|
|
func ADOXQ(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcADOXQ.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// AESDEC: Perform One Round of an AES Decryption Flow.
|
|
//
|
|
// Forms:
|
|
//
|
|
// AESDEC m128 xmm
|
|
// AESDEC xmm xmm
|
|
func AESDEC(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcAESDEC.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// AESDECLAST: Perform Last Round of an AES Decryption Flow.
|
|
//
|
|
// Forms:
|
|
//
|
|
// AESDECLAST m128 xmm
|
|
// AESDECLAST xmm xmm
|
|
func AESDECLAST(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcAESDECLAST.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// AESENC: Perform One Round of an AES Encryption Flow.
|
|
//
|
|
// Forms:
|
|
//
|
|
// AESENC m128 xmm
|
|
// AESENC xmm xmm
|
|
func AESENC(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcAESENC.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// AESENCLAST: Perform Last Round of an AES Encryption Flow.
|
|
//
|
|
// Forms:
|
|
//
|
|
// AESENCLAST m128 xmm
|
|
// AESENCLAST xmm xmm
|
|
func AESENCLAST(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcAESENCLAST.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// AESIMC: Perform the AES InvMixColumn Transformation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// AESIMC m128 xmm
|
|
// AESIMC xmm xmm
|
|
func AESIMC(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcAESIMC.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// AESKEYGENASSIST: AES Round Key Generation Assist.
|
|
//
|
|
// Forms:
|
|
//
|
|
// AESKEYGENASSIST imm8 m128 xmm
|
|
// AESKEYGENASSIST imm8 xmm xmm
|
|
func AESKEYGENASSIST(i, mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcAESKEYGENASSIST.Forms(), sffxs{}, []operand.Op{i, mx, x})
|
|
}
|
|
|
|
// ANDB: Logical AND.
|
|
//
|
|
// Forms:
|
|
//
|
|
// ANDB imm8 al
|
|
// ANDB imm8 m8
|
|
// ANDB imm8 r8
|
|
// ANDB m8 r8
|
|
// ANDB r8 m8
|
|
// ANDB r8 r8
|
|
func ANDB(imr, amr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcANDB.Forms(), sffxs{}, []operand.Op{imr, amr})
|
|
}
|
|
|
|
// ANDL: Logical AND.
|
|
//
|
|
// Forms:
|
|
//
|
|
// ANDL imm32 eax
|
|
// ANDL imm32 m32
|
|
// ANDL imm32 r32
|
|
// ANDL imm8 m32
|
|
// ANDL imm8 r32
|
|
// ANDL m32 r32
|
|
// ANDL r32 m32
|
|
// ANDL r32 r32
|
|
func ANDL(imr, emr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcANDL.Forms(), sffxs{}, []operand.Op{imr, emr})
|
|
}
|
|
|
|
// ANDNL: Logical AND NOT.
|
|
//
|
|
// Forms:
|
|
//
|
|
// ANDNL m32 r32 r32
|
|
// ANDNL r32 r32 r32
|
|
func ANDNL(mr, r, r1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcANDNL.Forms(), sffxs{}, []operand.Op{mr, r, r1})
|
|
}
|
|
|
|
// ANDNPD: Bitwise Logical AND NOT of Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// ANDNPD m128 xmm
|
|
// ANDNPD xmm xmm
|
|
func ANDNPD(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcANDNPD.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// ANDNPS: Bitwise Logical AND NOT of Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// ANDNPS m128 xmm
|
|
// ANDNPS xmm xmm
|
|
func ANDNPS(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcANDNPS.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// ANDNQ: Logical AND NOT.
|
|
//
|
|
// Forms:
|
|
//
|
|
// ANDNQ m64 r64 r64
|
|
// ANDNQ r64 r64 r64
|
|
func ANDNQ(mr, r, r1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcANDNQ.Forms(), sffxs{}, []operand.Op{mr, r, r1})
|
|
}
|
|
|
|
// ANDPD: Bitwise Logical AND of Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// ANDPD m128 xmm
|
|
// ANDPD xmm xmm
|
|
func ANDPD(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcANDPD.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// ANDPS: Bitwise Logical AND of Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// ANDPS m128 xmm
|
|
// ANDPS xmm xmm
|
|
func ANDPS(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcANDPS.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// ANDQ: Logical AND.
|
|
//
|
|
// Forms:
|
|
//
|
|
// ANDQ imm32 m64
|
|
// ANDQ imm32 r64
|
|
// ANDQ imm32 rax
|
|
// ANDQ imm8 m64
|
|
// ANDQ imm8 r64
|
|
// ANDQ m64 r64
|
|
// ANDQ r64 m64
|
|
// ANDQ r64 r64
|
|
func ANDQ(imr, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcANDQ.Forms(), sffxs{}, []operand.Op{imr, mr})
|
|
}
|
|
|
|
// ANDW: Logical AND.
|
|
//
|
|
// Forms:
|
|
//
|
|
// ANDW imm16 ax
|
|
// ANDW imm16 m16
|
|
// ANDW imm16 r16
|
|
// ANDW imm8 m16
|
|
// ANDW imm8 r16
|
|
// ANDW m16 r16
|
|
// ANDW r16 m16
|
|
// ANDW r16 r16
|
|
func ANDW(imr, amr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcANDW.Forms(), sffxs{}, []operand.Op{imr, amr})
|
|
}
|
|
|
|
// BEXTRL: Bit Field Extract.
|
|
//
|
|
// Forms:
|
|
//
|
|
// BEXTRL r32 m32 r32
|
|
// BEXTRL r32 r32 r32
|
|
func BEXTRL(r, mr, r1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcBEXTRL.Forms(), sffxs{}, []operand.Op{r, mr, r1})
|
|
}
|
|
|
|
// BEXTRQ: Bit Field Extract.
|
|
//
|
|
// Forms:
|
|
//
|
|
// BEXTRQ r64 m64 r64
|
|
// BEXTRQ r64 r64 r64
|
|
func BEXTRQ(r, mr, r1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcBEXTRQ.Forms(), sffxs{}, []operand.Op{r, mr, r1})
|
|
}
|
|
|
|
// BLENDPD: Blend Packed Double Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// BLENDPD imm8 m128 xmm
|
|
// BLENDPD imm8 xmm xmm
|
|
func BLENDPD(i, mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcBLENDPD.Forms(), sffxs{}, []operand.Op{i, mx, x})
|
|
}
|
|
|
|
// BLENDPS: Blend Packed Single Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// BLENDPS imm8 m128 xmm
|
|
// BLENDPS imm8 xmm xmm
|
|
func BLENDPS(i, mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcBLENDPS.Forms(), sffxs{}, []operand.Op{i, mx, x})
|
|
}
|
|
|
|
// BLENDVPD: Variable Blend Packed Double Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// BLENDVPD xmm0 m128 xmm
|
|
// BLENDVPD xmm0 xmm xmm
|
|
func BLENDVPD(x, mx, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcBLENDVPD.Forms(), sffxs{}, []operand.Op{x, mx, x1})
|
|
}
|
|
|
|
// BLENDVPS: Variable Blend Packed Single Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// BLENDVPS xmm0 m128 xmm
|
|
// BLENDVPS xmm0 xmm xmm
|
|
func BLENDVPS(x, mx, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcBLENDVPS.Forms(), sffxs{}, []operand.Op{x, mx, x1})
|
|
}
|
|
|
|
// BLSIL: Isolate Lowest Set Bit.
|
|
//
|
|
// Forms:
|
|
//
|
|
// BLSIL m32 r32
|
|
// BLSIL r32 r32
|
|
func BLSIL(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcBLSIL.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// BLSIQ: Isolate Lowest Set Bit.
|
|
//
|
|
// Forms:
|
|
//
|
|
// BLSIQ m64 r64
|
|
// BLSIQ r64 r64
|
|
func BLSIQ(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcBLSIQ.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// BLSMSKL: Mask From Lowest Set Bit.
|
|
//
|
|
// Forms:
|
|
//
|
|
// BLSMSKL m32 r32
|
|
// BLSMSKL r32 r32
|
|
func BLSMSKL(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcBLSMSKL.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// BLSMSKQ: Mask From Lowest Set Bit.
|
|
//
|
|
// Forms:
|
|
//
|
|
// BLSMSKQ m64 r64
|
|
// BLSMSKQ r64 r64
|
|
func BLSMSKQ(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcBLSMSKQ.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// BLSRL: Reset Lowest Set Bit.
|
|
//
|
|
// Forms:
|
|
//
|
|
// BLSRL m32 r32
|
|
// BLSRL r32 r32
|
|
func BLSRL(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcBLSRL.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// BLSRQ: Reset Lowest Set Bit.
|
|
//
|
|
// Forms:
|
|
//
|
|
// BLSRQ m64 r64
|
|
// BLSRQ r64 r64
|
|
func BLSRQ(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcBLSRQ.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// BSFL: Bit Scan Forward.
|
|
//
|
|
// Forms:
|
|
//
|
|
// BSFL m32 r32
|
|
// BSFL r32 r32
|
|
func BSFL(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcBSFL.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// BSFQ: Bit Scan Forward.
|
|
//
|
|
// Forms:
|
|
//
|
|
// BSFQ m64 r64
|
|
// BSFQ r64 r64
|
|
func BSFQ(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcBSFQ.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// BSFW: Bit Scan Forward.
|
|
//
|
|
// Forms:
|
|
//
|
|
// BSFW m16 r16
|
|
// BSFW r16 r16
|
|
func BSFW(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcBSFW.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// BSRL: Bit Scan Reverse.
|
|
//
|
|
// Forms:
|
|
//
|
|
// BSRL m32 r32
|
|
// BSRL r32 r32
|
|
func BSRL(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcBSRL.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// BSRQ: Bit Scan Reverse.
|
|
//
|
|
// Forms:
|
|
//
|
|
// BSRQ m64 r64
|
|
// BSRQ r64 r64
|
|
func BSRQ(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcBSRQ.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// BSRW: Bit Scan Reverse.
|
|
//
|
|
// Forms:
|
|
//
|
|
// BSRW m16 r16
|
|
// BSRW r16 r16
|
|
func BSRW(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcBSRW.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// BSWAPL: Byte Swap.
|
|
//
|
|
// Forms:
|
|
//
|
|
// BSWAPL r32
|
|
func BSWAPL(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcBSWAPL.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// BSWAPQ: Byte Swap.
|
|
//
|
|
// Forms:
|
|
//
|
|
// BSWAPQ r64
|
|
func BSWAPQ(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcBSWAPQ.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// BTCL: Bit Test and Complement.
|
|
//
|
|
// Forms:
|
|
//
|
|
// BTCL imm8 m32
|
|
// BTCL imm8 r32
|
|
// BTCL r32 m32
|
|
// BTCL r32 r32
|
|
func BTCL(ir, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcBTCL.Forms(), sffxs{}, []operand.Op{ir, mr})
|
|
}
|
|
|
|
// BTCQ: Bit Test and Complement.
|
|
//
|
|
// Forms:
|
|
//
|
|
// BTCQ imm8 m64
|
|
// BTCQ imm8 r64
|
|
// BTCQ r64 m64
|
|
// BTCQ r64 r64
|
|
func BTCQ(ir, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcBTCQ.Forms(), sffxs{}, []operand.Op{ir, mr})
|
|
}
|
|
|
|
// BTCW: Bit Test and Complement.
|
|
//
|
|
// Forms:
|
|
//
|
|
// BTCW imm8 m16
|
|
// BTCW imm8 r16
|
|
// BTCW r16 m16
|
|
// BTCW r16 r16
|
|
func BTCW(ir, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcBTCW.Forms(), sffxs{}, []operand.Op{ir, mr})
|
|
}
|
|
|
|
// BTL: Bit Test.
|
|
//
|
|
// Forms:
|
|
//
|
|
// BTL imm8 m32
|
|
// BTL imm8 r32
|
|
// BTL r32 m32
|
|
// BTL r32 r32
|
|
func BTL(ir, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcBTL.Forms(), sffxs{}, []operand.Op{ir, mr})
|
|
}
|
|
|
|
// BTQ: Bit Test.
|
|
//
|
|
// Forms:
|
|
//
|
|
// BTQ imm8 m64
|
|
// BTQ imm8 r64
|
|
// BTQ r64 m64
|
|
// BTQ r64 r64
|
|
func BTQ(ir, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcBTQ.Forms(), sffxs{}, []operand.Op{ir, mr})
|
|
}
|
|
|
|
// BTRL: Bit Test and Reset.
|
|
//
|
|
// Forms:
|
|
//
|
|
// BTRL imm8 m32
|
|
// BTRL imm8 r32
|
|
// BTRL r32 m32
|
|
// BTRL r32 r32
|
|
func BTRL(ir, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcBTRL.Forms(), sffxs{}, []operand.Op{ir, mr})
|
|
}
|
|
|
|
// BTRQ: Bit Test and Reset.
|
|
//
|
|
// Forms:
|
|
//
|
|
// BTRQ imm8 m64
|
|
// BTRQ imm8 r64
|
|
// BTRQ r64 m64
|
|
// BTRQ r64 r64
|
|
func BTRQ(ir, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcBTRQ.Forms(), sffxs{}, []operand.Op{ir, mr})
|
|
}
|
|
|
|
// BTRW: Bit Test and Reset.
|
|
//
|
|
// Forms:
|
|
//
|
|
// BTRW imm8 m16
|
|
// BTRW imm8 r16
|
|
// BTRW r16 m16
|
|
// BTRW r16 r16
|
|
func BTRW(ir, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcBTRW.Forms(), sffxs{}, []operand.Op{ir, mr})
|
|
}
|
|
|
|
// BTSL: Bit Test and Set.
|
|
//
|
|
// Forms:
|
|
//
|
|
// BTSL imm8 m32
|
|
// BTSL imm8 r32
|
|
// BTSL r32 m32
|
|
// BTSL r32 r32
|
|
func BTSL(ir, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcBTSL.Forms(), sffxs{}, []operand.Op{ir, mr})
|
|
}
|
|
|
|
// BTSQ: Bit Test and Set.
|
|
//
|
|
// Forms:
|
|
//
|
|
// BTSQ imm8 m64
|
|
// BTSQ imm8 r64
|
|
// BTSQ r64 m64
|
|
// BTSQ r64 r64
|
|
func BTSQ(ir, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcBTSQ.Forms(), sffxs{}, []operand.Op{ir, mr})
|
|
}
|
|
|
|
// BTSW: Bit Test and Set.
|
|
//
|
|
// Forms:
|
|
//
|
|
// BTSW imm8 m16
|
|
// BTSW imm8 r16
|
|
// BTSW r16 m16
|
|
// BTSW r16 r16
|
|
func BTSW(ir, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcBTSW.Forms(), sffxs{}, []operand.Op{ir, mr})
|
|
}
|
|
|
|
// BTW: Bit Test.
|
|
//
|
|
// Forms:
|
|
//
|
|
// BTW imm8 m16
|
|
// BTW imm8 r16
|
|
// BTW r16 m16
|
|
// BTW r16 r16
|
|
func BTW(ir, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcBTW.Forms(), sffxs{}, []operand.Op{ir, mr})
|
|
}
|
|
|
|
// BZHIL: Zero High Bits Starting with Specified Bit Position.
|
|
//
|
|
// Forms:
|
|
//
|
|
// BZHIL r32 m32 r32
|
|
// BZHIL r32 r32 r32
|
|
func BZHIL(r, mr, r1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcBZHIL.Forms(), sffxs{}, []operand.Op{r, mr, r1})
|
|
}
|
|
|
|
// BZHIQ: Zero High Bits Starting with Specified Bit Position.
|
|
//
|
|
// Forms:
|
|
//
|
|
// BZHIQ r64 m64 r64
|
|
// BZHIQ r64 r64 r64
|
|
func BZHIQ(r, mr, r1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcBZHIQ.Forms(), sffxs{}, []operand.Op{r, mr, r1})
|
|
}
|
|
|
|
// CALL: Call Procedure.
|
|
//
|
|
// Forms:
|
|
//
|
|
// CALL rel32
|
|
func CALL(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCALL.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// CBW: Convert Byte to Word.
|
|
//
|
|
// Forms:
|
|
//
|
|
// CBW
|
|
func CBW() (*intrep.Instruction, error) {
|
|
return build(opcCBW.Forms(), sffxs{}, []operand.Op{})
|
|
}
|
|
|
|
// CDQ: Convert Doubleword to Quadword.
|
|
//
|
|
// Forms:
|
|
//
|
|
// CDQ
|
|
func CDQ() (*intrep.Instruction, error) {
|
|
return build(opcCDQ.Forms(), sffxs{}, []operand.Op{})
|
|
}
|
|
|
|
// CDQE: Convert Doubleword to Quadword.
|
|
//
|
|
// Forms:
|
|
//
|
|
// CDQE
|
|
func CDQE() (*intrep.Instruction, error) {
|
|
return build(opcCDQE.Forms(), sffxs{}, []operand.Op{})
|
|
}
|
|
|
|
// CLC: Clear Carry Flag.
|
|
//
|
|
// Forms:
|
|
//
|
|
// CLC
|
|
func CLC() (*intrep.Instruction, error) {
|
|
return build(opcCLC.Forms(), sffxs{}, []operand.Op{})
|
|
}
|
|
|
|
// CLD: Clear Direction Flag.
|
|
//
|
|
// Forms:
|
|
//
|
|
// CLD
|
|
func CLD() (*intrep.Instruction, error) {
|
|
return build(opcCLD.Forms(), sffxs{}, []operand.Op{})
|
|
}
|
|
|
|
// CLFLUSH: Flush Cache Line.
|
|
//
|
|
// Forms:
|
|
//
|
|
// CLFLUSH m8
|
|
func CLFLUSH(m operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCLFLUSH.Forms(), sffxs{}, []operand.Op{m})
|
|
}
|
|
|
|
// CLFLUSHOPT: Flush Cache Line Optimized.
|
|
//
|
|
// Forms:
|
|
//
|
|
// CLFLUSHOPT m8
|
|
func CLFLUSHOPT(m operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCLFLUSHOPT.Forms(), sffxs{}, []operand.Op{m})
|
|
}
|
|
|
|
// CMC: Complement Carry Flag.
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMC
|
|
func CMC() (*intrep.Instruction, error) {
|
|
return build(opcCMC.Forms(), sffxs{}, []operand.Op{})
|
|
}
|
|
|
|
// CMOVLCC: Move if above or equal (CF == 0).
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMOVLCC m32 r32
|
|
// CMOVLCC r32 r32
|
|
func CMOVLCC(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMOVLCC.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CMOVLCS: Move if below (CF == 1).
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMOVLCS m32 r32
|
|
// CMOVLCS r32 r32
|
|
func CMOVLCS(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMOVLCS.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CMOVLEQ: Move if equal (ZF == 1).
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMOVLEQ m32 r32
|
|
// CMOVLEQ r32 r32
|
|
func CMOVLEQ(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMOVLEQ.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CMOVLGE: Move if greater or equal (SF == OF).
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMOVLGE m32 r32
|
|
// CMOVLGE r32 r32
|
|
func CMOVLGE(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMOVLGE.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CMOVLGT: Move if greater (ZF == 0 and SF == OF).
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMOVLGT m32 r32
|
|
// CMOVLGT r32 r32
|
|
func CMOVLGT(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMOVLGT.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CMOVLHI: Move if above (CF == 0 and ZF == 0).
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMOVLHI m32 r32
|
|
// CMOVLHI r32 r32
|
|
func CMOVLHI(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMOVLHI.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CMOVLLE: Move if less or equal (ZF == 1 or SF != OF).
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMOVLLE m32 r32
|
|
// CMOVLLE r32 r32
|
|
func CMOVLLE(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMOVLLE.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CMOVLLS: Move if below or equal (CF == 1 or ZF == 1).
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMOVLLS m32 r32
|
|
// CMOVLLS r32 r32
|
|
func CMOVLLS(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMOVLLS.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CMOVLLT: Move if less (SF != OF).
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMOVLLT m32 r32
|
|
// CMOVLLT r32 r32
|
|
func CMOVLLT(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMOVLLT.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CMOVLMI: Move if sign (SF == 1).
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMOVLMI m32 r32
|
|
// CMOVLMI r32 r32
|
|
func CMOVLMI(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMOVLMI.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CMOVLNE: Move if not equal (ZF == 0).
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMOVLNE m32 r32
|
|
// CMOVLNE r32 r32
|
|
func CMOVLNE(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMOVLNE.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CMOVLOC: Move if not overflow (OF == 0).
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMOVLOC m32 r32
|
|
// CMOVLOC r32 r32
|
|
func CMOVLOC(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMOVLOC.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CMOVLOS: Move if overflow (OF == 1).
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMOVLOS m32 r32
|
|
// CMOVLOS r32 r32
|
|
func CMOVLOS(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMOVLOS.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CMOVLPC: Move if not parity (PF == 0).
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMOVLPC m32 r32
|
|
// CMOVLPC r32 r32
|
|
func CMOVLPC(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMOVLPC.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CMOVLPL: Move if not sign (SF == 0).
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMOVLPL m32 r32
|
|
// CMOVLPL r32 r32
|
|
func CMOVLPL(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMOVLPL.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CMOVLPS: Move if parity (PF == 1).
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMOVLPS m32 r32
|
|
// CMOVLPS r32 r32
|
|
func CMOVLPS(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMOVLPS.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CMOVQCC: Move if above or equal (CF == 0).
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMOVQCC m64 r64
|
|
// CMOVQCC r64 r64
|
|
func CMOVQCC(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMOVQCC.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CMOVQCS: Move if below (CF == 1).
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMOVQCS m64 r64
|
|
// CMOVQCS r64 r64
|
|
func CMOVQCS(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMOVQCS.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CMOVQEQ: Move if equal (ZF == 1).
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMOVQEQ m64 r64
|
|
// CMOVQEQ r64 r64
|
|
func CMOVQEQ(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMOVQEQ.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CMOVQGE: Move if greater or equal (SF == OF).
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMOVQGE m64 r64
|
|
// CMOVQGE r64 r64
|
|
func CMOVQGE(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMOVQGE.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CMOVQGT: Move if greater (ZF == 0 and SF == OF).
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMOVQGT m64 r64
|
|
// CMOVQGT r64 r64
|
|
func CMOVQGT(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMOVQGT.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CMOVQHI: Move if above (CF == 0 and ZF == 0).
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMOVQHI m64 r64
|
|
// CMOVQHI r64 r64
|
|
func CMOVQHI(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMOVQHI.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CMOVQLE: Move if less or equal (ZF == 1 or SF != OF).
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMOVQLE m64 r64
|
|
// CMOVQLE r64 r64
|
|
func CMOVQLE(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMOVQLE.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CMOVQLS: Move if below or equal (CF == 1 or ZF == 1).
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMOVQLS m64 r64
|
|
// CMOVQLS r64 r64
|
|
func CMOVQLS(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMOVQLS.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CMOVQLT: Move if less (SF != OF).
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMOVQLT m64 r64
|
|
// CMOVQLT r64 r64
|
|
func CMOVQLT(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMOVQLT.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CMOVQMI: Move if sign (SF == 1).
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMOVQMI m64 r64
|
|
// CMOVQMI r64 r64
|
|
func CMOVQMI(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMOVQMI.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CMOVQNE: Move if not equal (ZF == 0).
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMOVQNE m64 r64
|
|
// CMOVQNE r64 r64
|
|
func CMOVQNE(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMOVQNE.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CMOVQOC: Move if not overflow (OF == 0).
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMOVQOC m64 r64
|
|
// CMOVQOC r64 r64
|
|
func CMOVQOC(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMOVQOC.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CMOVQOS: Move if overflow (OF == 1).
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMOVQOS m64 r64
|
|
// CMOVQOS r64 r64
|
|
func CMOVQOS(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMOVQOS.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CMOVQPC: Move if not parity (PF == 0).
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMOVQPC m64 r64
|
|
// CMOVQPC r64 r64
|
|
func CMOVQPC(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMOVQPC.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CMOVQPL: Move if not sign (SF == 0).
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMOVQPL m64 r64
|
|
// CMOVQPL r64 r64
|
|
func CMOVQPL(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMOVQPL.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CMOVQPS: Move if parity (PF == 1).
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMOVQPS m64 r64
|
|
// CMOVQPS r64 r64
|
|
func CMOVQPS(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMOVQPS.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CMOVWCC: Move if above or equal (CF == 0).
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMOVWCC m16 r16
|
|
// CMOVWCC r16 r16
|
|
func CMOVWCC(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMOVWCC.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CMOVWCS: Move if below (CF == 1).
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMOVWCS m16 r16
|
|
// CMOVWCS r16 r16
|
|
func CMOVWCS(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMOVWCS.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CMOVWEQ: Move if equal (ZF == 1).
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMOVWEQ m16 r16
|
|
// CMOVWEQ r16 r16
|
|
func CMOVWEQ(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMOVWEQ.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CMOVWGE: Move if greater or equal (SF == OF).
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMOVWGE m16 r16
|
|
// CMOVWGE r16 r16
|
|
func CMOVWGE(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMOVWGE.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CMOVWGT: Move if greater (ZF == 0 and SF == OF).
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMOVWGT m16 r16
|
|
// CMOVWGT r16 r16
|
|
func CMOVWGT(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMOVWGT.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CMOVWHI: Move if above (CF == 0 and ZF == 0).
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMOVWHI m16 r16
|
|
// CMOVWHI r16 r16
|
|
func CMOVWHI(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMOVWHI.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CMOVWLE: Move if less or equal (ZF == 1 or SF != OF).
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMOVWLE m16 r16
|
|
// CMOVWLE r16 r16
|
|
func CMOVWLE(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMOVWLE.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CMOVWLS: Move if below or equal (CF == 1 or ZF == 1).
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMOVWLS m16 r16
|
|
// CMOVWLS r16 r16
|
|
func CMOVWLS(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMOVWLS.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CMOVWLT: Move if less (SF != OF).
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMOVWLT m16 r16
|
|
// CMOVWLT r16 r16
|
|
func CMOVWLT(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMOVWLT.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CMOVWMI: Move if sign (SF == 1).
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMOVWMI m16 r16
|
|
// CMOVWMI r16 r16
|
|
func CMOVWMI(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMOVWMI.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CMOVWNE: Move if not equal (ZF == 0).
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMOVWNE m16 r16
|
|
// CMOVWNE r16 r16
|
|
func CMOVWNE(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMOVWNE.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CMOVWOC: Move if not overflow (OF == 0).
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMOVWOC m16 r16
|
|
// CMOVWOC r16 r16
|
|
func CMOVWOC(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMOVWOC.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CMOVWOS: Move if overflow (OF == 1).
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMOVWOS m16 r16
|
|
// CMOVWOS r16 r16
|
|
func CMOVWOS(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMOVWOS.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CMOVWPC: Move if not parity (PF == 0).
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMOVWPC m16 r16
|
|
// CMOVWPC r16 r16
|
|
func CMOVWPC(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMOVWPC.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CMOVWPL: Move if not sign (SF == 0).
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMOVWPL m16 r16
|
|
// CMOVWPL r16 r16
|
|
func CMOVWPL(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMOVWPL.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CMOVWPS: Move if parity (PF == 1).
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMOVWPS m16 r16
|
|
// CMOVWPS r16 r16
|
|
func CMOVWPS(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMOVWPS.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CMPB: Compare Two Operands.
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMPB al imm8
|
|
// CMPB m8 imm8
|
|
// CMPB m8 r8
|
|
// CMPB r8 imm8
|
|
// CMPB r8 m8
|
|
// CMPB r8 r8
|
|
func CMPB(amr, imr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMPB.Forms(), sffxs{}, []operand.Op{amr, imr})
|
|
}
|
|
|
|
// CMPL: Compare Two Operands.
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMPL eax imm32
|
|
// CMPL m32 imm32
|
|
// CMPL m32 imm8
|
|
// CMPL m32 r32
|
|
// CMPL r32 imm32
|
|
// CMPL r32 imm8
|
|
// CMPL r32 m32
|
|
// CMPL r32 r32
|
|
func CMPL(emr, imr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMPL.Forms(), sffxs{}, []operand.Op{emr, imr})
|
|
}
|
|
|
|
// CMPPD: Compare Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMPPD m128 xmm imm8
|
|
// CMPPD xmm xmm imm8
|
|
func CMPPD(mx, x, i operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMPPD.Forms(), sffxs{}, []operand.Op{mx, x, i})
|
|
}
|
|
|
|
// CMPPS: Compare Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMPPS m128 xmm imm8
|
|
// CMPPS xmm xmm imm8
|
|
func CMPPS(mx, x, i operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMPPS.Forms(), sffxs{}, []operand.Op{mx, x, i})
|
|
}
|
|
|
|
// CMPQ: Compare Two Operands.
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMPQ m64 imm32
|
|
// CMPQ m64 imm8
|
|
// CMPQ m64 r64
|
|
// CMPQ r64 imm32
|
|
// CMPQ r64 imm8
|
|
// CMPQ r64 m64
|
|
// CMPQ r64 r64
|
|
// CMPQ rax imm32
|
|
func CMPQ(mr, imr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMPQ.Forms(), sffxs{}, []operand.Op{mr, imr})
|
|
}
|
|
|
|
// CMPSD: Compare Scalar Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMPSD m64 xmm imm8
|
|
// CMPSD xmm xmm imm8
|
|
func CMPSD(mx, x, i operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMPSD.Forms(), sffxs{}, []operand.Op{mx, x, i})
|
|
}
|
|
|
|
// CMPSS: Compare Scalar Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMPSS m32 xmm imm8
|
|
// CMPSS xmm xmm imm8
|
|
func CMPSS(mx, x, i operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMPSS.Forms(), sffxs{}, []operand.Op{mx, x, i})
|
|
}
|
|
|
|
// CMPW: Compare Two Operands.
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMPW ax imm16
|
|
// CMPW m16 imm16
|
|
// CMPW m16 imm8
|
|
// CMPW m16 r16
|
|
// CMPW r16 imm16
|
|
// CMPW r16 imm8
|
|
// CMPW r16 m16
|
|
// CMPW r16 r16
|
|
func CMPW(amr, imr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMPW.Forms(), sffxs{}, []operand.Op{amr, imr})
|
|
}
|
|
|
|
// CMPXCHG16B: Compare and Exchange 16 Bytes.
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMPXCHG16B m128
|
|
func CMPXCHG16B(m operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMPXCHG16B.Forms(), sffxs{}, []operand.Op{m})
|
|
}
|
|
|
|
// CMPXCHG8B: Compare and Exchange 8 Bytes.
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMPXCHG8B m64
|
|
func CMPXCHG8B(m operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMPXCHG8B.Forms(), sffxs{}, []operand.Op{m})
|
|
}
|
|
|
|
// CMPXCHGB: Compare and Exchange.
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMPXCHGB r8 m8
|
|
// CMPXCHGB r8 r8
|
|
func CMPXCHGB(r, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMPXCHGB.Forms(), sffxs{}, []operand.Op{r, mr})
|
|
}
|
|
|
|
// CMPXCHGL: Compare and Exchange.
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMPXCHGL r32 m32
|
|
// CMPXCHGL r32 r32
|
|
func CMPXCHGL(r, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMPXCHGL.Forms(), sffxs{}, []operand.Op{r, mr})
|
|
}
|
|
|
|
// CMPXCHGQ: Compare and Exchange.
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMPXCHGQ r64 m64
|
|
// CMPXCHGQ r64 r64
|
|
func CMPXCHGQ(r, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMPXCHGQ.Forms(), sffxs{}, []operand.Op{r, mr})
|
|
}
|
|
|
|
// CMPXCHGW: Compare and Exchange.
|
|
//
|
|
// Forms:
|
|
//
|
|
// CMPXCHGW r16 m16
|
|
// CMPXCHGW r16 r16
|
|
func CMPXCHGW(r, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCMPXCHGW.Forms(), sffxs{}, []operand.Op{r, mr})
|
|
}
|
|
|
|
// COMISD: Compare Scalar Ordered Double-Precision Floating-Point Values and Set EFLAGS.
|
|
//
|
|
// Forms:
|
|
//
|
|
// COMISD m64 xmm
|
|
// COMISD xmm xmm
|
|
func COMISD(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCOMISD.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// COMISS: Compare Scalar Ordered Single-Precision Floating-Point Values and Set EFLAGS.
|
|
//
|
|
// Forms:
|
|
//
|
|
// COMISS m32 xmm
|
|
// COMISS xmm xmm
|
|
func COMISS(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCOMISS.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// CPUID: CPU Identification.
|
|
//
|
|
// Forms:
|
|
//
|
|
// CPUID
|
|
func CPUID() (*intrep.Instruction, error) {
|
|
return build(opcCPUID.Forms(), sffxs{}, []operand.Op{})
|
|
}
|
|
|
|
// CQO: Convert Quadword to Octaword.
|
|
//
|
|
// Forms:
|
|
//
|
|
// CQO
|
|
func CQO() (*intrep.Instruction, error) {
|
|
return build(opcCQO.Forms(), sffxs{}, []operand.Op{})
|
|
}
|
|
|
|
// CRC32B: Accumulate CRC32 Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// CRC32B m8 r32
|
|
// CRC32B m8 r64
|
|
// CRC32B r8 r32
|
|
// CRC32B r8 r64
|
|
func CRC32B(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCRC32B.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CRC32L: Accumulate CRC32 Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// CRC32L m32 r32
|
|
// CRC32L r32 r32
|
|
func CRC32L(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCRC32L.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CRC32Q: Accumulate CRC32 Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// CRC32Q m64 r64
|
|
// CRC32Q r64 r64
|
|
func CRC32Q(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCRC32Q.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CRC32W: Accumulate CRC32 Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// CRC32W m16 r32
|
|
// CRC32W r16 r32
|
|
func CRC32W(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCRC32W.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// CVTPD2PL: Convert Packed Double-Precision FP Values to Packed Dword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// CVTPD2PL m128 xmm
|
|
// CVTPD2PL xmm xmm
|
|
func CVTPD2PL(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCVTPD2PL.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// CVTPD2PS: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// CVTPD2PS m128 xmm
|
|
// CVTPD2PS xmm xmm
|
|
func CVTPD2PS(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCVTPD2PS.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// CVTPL2PD: Convert Packed Dword Integers to Packed Double-Precision FP Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// CVTPL2PD m64 xmm
|
|
// CVTPL2PD xmm xmm
|
|
func CVTPL2PD(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCVTPL2PD.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// CVTPL2PS: Convert Packed Dword Integers to Packed Single-Precision FP Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// CVTPL2PS m128 xmm
|
|
// CVTPL2PS xmm xmm
|
|
func CVTPL2PS(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCVTPL2PS.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// CVTPS2PD: Convert Packed Single-Precision FP Values to Packed Double-Precision FP Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// CVTPS2PD m64 xmm
|
|
// CVTPS2PD xmm xmm
|
|
func CVTPS2PD(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCVTPS2PD.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// CVTPS2PL: Convert Packed Single-Precision FP Values to Packed Dword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// CVTPS2PL m128 xmm
|
|
// CVTPS2PL xmm xmm
|
|
func CVTPS2PL(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCVTPS2PL.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// CVTSD2SL: Convert Scalar Double-Precision FP Value to Integer.
|
|
//
|
|
// Forms:
|
|
//
|
|
// CVTSD2SL m64 r32
|
|
// CVTSD2SL m64 r64
|
|
// CVTSD2SL xmm r32
|
|
// CVTSD2SL xmm r64
|
|
func CVTSD2SL(mx, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCVTSD2SL.Forms(), sffxs{}, []operand.Op{mx, r})
|
|
}
|
|
|
|
// CVTSD2SS: Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// CVTSD2SS m64 xmm
|
|
// CVTSD2SS xmm xmm
|
|
func CVTSD2SS(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCVTSD2SS.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// CVTSL2SD: Convert Dword Integer to Scalar Double-Precision FP Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// CVTSL2SD m32 xmm
|
|
// CVTSL2SD r32 xmm
|
|
func CVTSL2SD(mr, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCVTSL2SD.Forms(), sffxs{}, []operand.Op{mr, x})
|
|
}
|
|
|
|
// CVTSL2SS: Convert Dword Integer to Scalar Single-Precision FP Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// CVTSL2SS m32 xmm
|
|
// CVTSL2SS r32 xmm
|
|
func CVTSL2SS(mr, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCVTSL2SS.Forms(), sffxs{}, []operand.Op{mr, x})
|
|
}
|
|
|
|
// CVTSQ2SD: Convert Dword Integer to Scalar Double-Precision FP Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// CVTSQ2SD m64 xmm
|
|
// CVTSQ2SD r64 xmm
|
|
func CVTSQ2SD(mr, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCVTSQ2SD.Forms(), sffxs{}, []operand.Op{mr, x})
|
|
}
|
|
|
|
// CVTSQ2SS: Convert Dword Integer to Scalar Single-Precision FP Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// CVTSQ2SS m64 xmm
|
|
// CVTSQ2SS r64 xmm
|
|
func CVTSQ2SS(mr, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCVTSQ2SS.Forms(), sffxs{}, []operand.Op{mr, x})
|
|
}
|
|
|
|
// CVTSS2SD: Convert Scalar Single-Precision FP Value to Scalar Double-Precision FP Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// CVTSS2SD m32 xmm
|
|
// CVTSS2SD xmm xmm
|
|
func CVTSS2SD(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCVTSS2SD.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// CVTSS2SL: Convert Scalar Single-Precision FP Value to Dword Integer.
|
|
//
|
|
// Forms:
|
|
//
|
|
// CVTSS2SL m32 r32
|
|
// CVTSS2SL m32 r64
|
|
// CVTSS2SL xmm r32
|
|
// CVTSS2SL xmm r64
|
|
func CVTSS2SL(mx, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCVTSS2SL.Forms(), sffxs{}, []operand.Op{mx, r})
|
|
}
|
|
|
|
// CVTTPD2PL: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// CVTTPD2PL m128 xmm
|
|
// CVTTPD2PL xmm xmm
|
|
func CVTTPD2PL(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCVTTPD2PL.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// CVTTPS2PL: Convert with Truncation Packed Single-Precision FP Values to Packed Dword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// CVTTPS2PL m128 xmm
|
|
// CVTTPS2PL xmm xmm
|
|
func CVTTPS2PL(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCVTTPS2PL.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// CVTTSD2SL: Convert with Truncation Scalar Double-Precision FP Value to Signed Integer.
|
|
//
|
|
// Forms:
|
|
//
|
|
// CVTTSD2SL m64 r32
|
|
// CVTTSD2SL xmm r32
|
|
func CVTTSD2SL(mx, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCVTTSD2SL.Forms(), sffxs{}, []operand.Op{mx, r})
|
|
}
|
|
|
|
// CVTTSD2SQ: Convert with Truncation Scalar Double-Precision FP Value to Signed Integer.
|
|
//
|
|
// Forms:
|
|
//
|
|
// CVTTSD2SQ m64 r64
|
|
// CVTTSD2SQ xmm r64
|
|
func CVTTSD2SQ(mx, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCVTTSD2SQ.Forms(), sffxs{}, []operand.Op{mx, r})
|
|
}
|
|
|
|
// CVTTSS2SL: Convert with Truncation Scalar Single-Precision FP Value to Dword Integer.
|
|
//
|
|
// Forms:
|
|
//
|
|
// CVTTSS2SL m32 r32
|
|
// CVTTSS2SL m32 r64
|
|
// CVTTSS2SL xmm r32
|
|
// CVTTSS2SL xmm r64
|
|
func CVTTSS2SL(mx, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcCVTTSS2SL.Forms(), sffxs{}, []operand.Op{mx, r})
|
|
}
|
|
|
|
// CWD: Convert Word to Doubleword.
|
|
//
|
|
// Forms:
|
|
//
|
|
// CWD
|
|
func CWD() (*intrep.Instruction, error) {
|
|
return build(opcCWD.Forms(), sffxs{}, []operand.Op{})
|
|
}
|
|
|
|
// CWDE: Convert Word to Doubleword.
|
|
//
|
|
// Forms:
|
|
//
|
|
// CWDE
|
|
func CWDE() (*intrep.Instruction, error) {
|
|
return build(opcCWDE.Forms(), sffxs{}, []operand.Op{})
|
|
}
|
|
|
|
// DECB: Decrement by 1.
|
|
//
|
|
// Forms:
|
|
//
|
|
// DECB m8
|
|
// DECB r8
|
|
func DECB(mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcDECB.Forms(), sffxs{}, []operand.Op{mr})
|
|
}
|
|
|
|
// DECL: Decrement by 1.
|
|
//
|
|
// Forms:
|
|
//
|
|
// DECL m32
|
|
// DECL r32
|
|
func DECL(mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcDECL.Forms(), sffxs{}, []operand.Op{mr})
|
|
}
|
|
|
|
// DECQ: Decrement by 1.
|
|
//
|
|
// Forms:
|
|
//
|
|
// DECQ m64
|
|
// DECQ r64
|
|
func DECQ(mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcDECQ.Forms(), sffxs{}, []operand.Op{mr})
|
|
}
|
|
|
|
// DECW: Decrement by 1.
|
|
//
|
|
// Forms:
|
|
//
|
|
// DECW m16
|
|
// DECW r16
|
|
func DECW(mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcDECW.Forms(), sffxs{}, []operand.Op{mr})
|
|
}
|
|
|
|
// DIVB: Unsigned Divide.
|
|
//
|
|
// Forms:
|
|
//
|
|
// DIVB m8
|
|
// DIVB r8
|
|
func DIVB(mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcDIVB.Forms(), sffxs{}, []operand.Op{mr})
|
|
}
|
|
|
|
// DIVL: Unsigned Divide.
|
|
//
|
|
// Forms:
|
|
//
|
|
// DIVL m32
|
|
// DIVL r32
|
|
func DIVL(mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcDIVL.Forms(), sffxs{}, []operand.Op{mr})
|
|
}
|
|
|
|
// DIVPD: Divide Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// DIVPD m128 xmm
|
|
// DIVPD xmm xmm
|
|
func DIVPD(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcDIVPD.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// DIVPS: Divide Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// DIVPS m128 xmm
|
|
// DIVPS xmm xmm
|
|
func DIVPS(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcDIVPS.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// DIVQ: Unsigned Divide.
|
|
//
|
|
// Forms:
|
|
//
|
|
// DIVQ m64
|
|
// DIVQ r64
|
|
func DIVQ(mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcDIVQ.Forms(), sffxs{}, []operand.Op{mr})
|
|
}
|
|
|
|
// DIVSD: Divide Scalar Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// DIVSD m64 xmm
|
|
// DIVSD xmm xmm
|
|
func DIVSD(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcDIVSD.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// DIVSS: Divide Scalar Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// DIVSS m32 xmm
|
|
// DIVSS xmm xmm
|
|
func DIVSS(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcDIVSS.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// DIVW: Unsigned Divide.
|
|
//
|
|
// Forms:
|
|
//
|
|
// DIVW m16
|
|
// DIVW r16
|
|
func DIVW(mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcDIVW.Forms(), sffxs{}, []operand.Op{mr})
|
|
}
|
|
|
|
// DPPD: Dot Product of Packed Double Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// DPPD imm8 m128 xmm
|
|
// DPPD imm8 xmm xmm
|
|
func DPPD(i, mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcDPPD.Forms(), sffxs{}, []operand.Op{i, mx, x})
|
|
}
|
|
|
|
// DPPS: Dot Product of Packed Single Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// DPPS imm8 m128 xmm
|
|
// DPPS imm8 xmm xmm
|
|
func DPPS(i, mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcDPPS.Forms(), sffxs{}, []operand.Op{i, mx, x})
|
|
}
|
|
|
|
// EXTRACTPS: Extract Packed Single Precision Floating-Point Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// EXTRACTPS imm2u xmm m32
|
|
// EXTRACTPS imm2u xmm r32
|
|
func EXTRACTPS(i, x, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcEXTRACTPS.Forms(), sffxs{}, []operand.Op{i, x, mr})
|
|
}
|
|
|
|
// HADDPD: Packed Double-FP Horizontal Add.
|
|
//
|
|
// Forms:
|
|
//
|
|
// HADDPD m128 xmm
|
|
// HADDPD xmm xmm
|
|
func HADDPD(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcHADDPD.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// HADDPS: Packed Single-FP Horizontal Add.
|
|
//
|
|
// Forms:
|
|
//
|
|
// HADDPS m128 xmm
|
|
// HADDPS xmm xmm
|
|
func HADDPS(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcHADDPS.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// HSUBPD: Packed Double-FP Horizontal Subtract.
|
|
//
|
|
// Forms:
|
|
//
|
|
// HSUBPD m128 xmm
|
|
// HSUBPD xmm xmm
|
|
func HSUBPD(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcHSUBPD.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// HSUBPS: Packed Single-FP Horizontal Subtract.
|
|
//
|
|
// Forms:
|
|
//
|
|
// HSUBPS m128 xmm
|
|
// HSUBPS xmm xmm
|
|
func HSUBPS(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcHSUBPS.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// IDIVB: Signed Divide.
|
|
//
|
|
// Forms:
|
|
//
|
|
// IDIVB m8
|
|
// IDIVB r8
|
|
func IDIVB(mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcIDIVB.Forms(), sffxs{}, []operand.Op{mr})
|
|
}
|
|
|
|
// IDIVL: Signed Divide.
|
|
//
|
|
// Forms:
|
|
//
|
|
// IDIVL m32
|
|
// IDIVL r32
|
|
func IDIVL(mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcIDIVL.Forms(), sffxs{}, []operand.Op{mr})
|
|
}
|
|
|
|
// IDIVQ: Signed Divide.
|
|
//
|
|
// Forms:
|
|
//
|
|
// IDIVQ m64
|
|
// IDIVQ r64
|
|
func IDIVQ(mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcIDIVQ.Forms(), sffxs{}, []operand.Op{mr})
|
|
}
|
|
|
|
// IDIVW: Signed Divide.
|
|
//
|
|
// Forms:
|
|
//
|
|
// IDIVW m16
|
|
// IDIVW r16
|
|
func IDIVW(mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcIDIVW.Forms(), sffxs{}, []operand.Op{mr})
|
|
}
|
|
|
|
// IMUL3L: Signed Multiply.
|
|
//
|
|
// Forms:
|
|
//
|
|
// IMUL3L imm32 m32 r32
|
|
// IMUL3L imm32 r32 r32
|
|
// IMUL3L imm8 m32 r32
|
|
// IMUL3L imm8 r32 r32
|
|
func IMUL3L(i, mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcIMUL3L.Forms(), sffxs{}, []operand.Op{i, mr, r})
|
|
}
|
|
|
|
// IMUL3Q: Signed Multiply.
|
|
//
|
|
// Forms:
|
|
//
|
|
// IMUL3Q imm32 m64 r64
|
|
// IMUL3Q imm32 r64 r64
|
|
// IMUL3Q imm8 m64 r64
|
|
// IMUL3Q imm8 r64 r64
|
|
func IMUL3Q(i, mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcIMUL3Q.Forms(), sffxs{}, []operand.Op{i, mr, r})
|
|
}
|
|
|
|
// IMUL3W: Signed Multiply.
|
|
//
|
|
// Forms:
|
|
//
|
|
// IMUL3W imm16 m16 r16
|
|
// IMUL3W imm16 r16 r16
|
|
// IMUL3W imm8 m16 r16
|
|
// IMUL3W imm8 r16 r16
|
|
func IMUL3W(i, mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcIMUL3W.Forms(), sffxs{}, []operand.Op{i, mr, r})
|
|
}
|
|
|
|
// IMULB: Signed Multiply.
|
|
//
|
|
// Forms:
|
|
//
|
|
// IMULB m8
|
|
// IMULB r8
|
|
func IMULB(mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcIMULB.Forms(), sffxs{}, []operand.Op{mr})
|
|
}
|
|
|
|
// IMULL: Signed Multiply.
|
|
//
|
|
// Forms:
|
|
//
|
|
// IMULL m32 r32
|
|
// IMULL m32
|
|
// IMULL r32 r32
|
|
// IMULL r32
|
|
func IMULL(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcIMULL.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// IMULQ: Signed Multiply.
|
|
//
|
|
// Forms:
|
|
//
|
|
// IMULQ m64 r64
|
|
// IMULQ m64
|
|
// IMULQ r64 r64
|
|
// IMULQ r64
|
|
func IMULQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcIMULQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// IMULW: Signed Multiply.
|
|
//
|
|
// Forms:
|
|
//
|
|
// IMULW m16 r16
|
|
// IMULW m16
|
|
// IMULW r16 r16
|
|
// IMULW r16
|
|
func IMULW(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcIMULW.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// INCB: Increment by 1.
|
|
//
|
|
// Forms:
|
|
//
|
|
// INCB m8
|
|
// INCB r8
|
|
func INCB(mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcINCB.Forms(), sffxs{}, []operand.Op{mr})
|
|
}
|
|
|
|
// INCL: Increment by 1.
|
|
//
|
|
// Forms:
|
|
//
|
|
// INCL m32
|
|
// INCL r32
|
|
func INCL(mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcINCL.Forms(), sffxs{}, []operand.Op{mr})
|
|
}
|
|
|
|
// INCQ: Increment by 1.
|
|
//
|
|
// Forms:
|
|
//
|
|
// INCQ m64
|
|
// INCQ r64
|
|
func INCQ(mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcINCQ.Forms(), sffxs{}, []operand.Op{mr})
|
|
}
|
|
|
|
// INCW: Increment by 1.
|
|
//
|
|
// Forms:
|
|
//
|
|
// INCW m16
|
|
// INCW r16
|
|
func INCW(mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcINCW.Forms(), sffxs{}, []operand.Op{mr})
|
|
}
|
|
|
|
// INSERTPS: Insert Packed Single Precision Floating-Point Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// INSERTPS imm8 m32 xmm
|
|
// INSERTPS imm8 xmm xmm
|
|
func INSERTPS(i, mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcINSERTPS.Forms(), sffxs{}, []operand.Op{i, mx, x})
|
|
}
|
|
|
|
// INT: Call to Interrupt Procedure.
|
|
//
|
|
// Forms:
|
|
//
|
|
// INT 3
|
|
// INT imm8
|
|
func INT(i operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcINT.Forms(), sffxs{}, []operand.Op{i})
|
|
}
|
|
|
|
// JA: Jump if above (CF == 0 and ZF == 0).
|
|
//
|
|
// Forms:
|
|
//
|
|
// JA rel32
|
|
// JA rel8
|
|
func JA(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcJA.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// JAE: Jump if above or equal (CF == 0).
|
|
//
|
|
// Forms:
|
|
//
|
|
// JAE rel32
|
|
// JAE rel8
|
|
func JAE(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcJAE.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// JB: Jump if below (CF == 1).
|
|
//
|
|
// Forms:
|
|
//
|
|
// JB rel32
|
|
// JB rel8
|
|
func JB(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcJB.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// JBE: Jump if below or equal (CF == 1 or ZF == 1).
|
|
//
|
|
// Forms:
|
|
//
|
|
// JBE rel32
|
|
// JBE rel8
|
|
func JBE(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcJBE.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// JC: Jump if below (CF == 1).
|
|
//
|
|
// Forms:
|
|
//
|
|
// JC rel32
|
|
// JC rel8
|
|
func JC(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcJC.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// JCC: Jump if above or equal (CF == 0).
|
|
//
|
|
// Forms:
|
|
//
|
|
// JCC rel32
|
|
// JCC rel8
|
|
func JCC(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcJCC.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// JCS: Jump if below (CF == 1).
|
|
//
|
|
// Forms:
|
|
//
|
|
// JCS rel32
|
|
// JCS rel8
|
|
func JCS(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcJCS.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// JCXZL: Jump if ECX register is 0.
|
|
//
|
|
// Forms:
|
|
//
|
|
// JCXZL rel8
|
|
func JCXZL(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcJCXZL.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// JCXZQ: Jump if RCX register is 0.
|
|
//
|
|
// Forms:
|
|
//
|
|
// JCXZQ rel8
|
|
func JCXZQ(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcJCXZQ.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// JE: Jump if equal (ZF == 1).
|
|
//
|
|
// Forms:
|
|
//
|
|
// JE rel32
|
|
// JE rel8
|
|
func JE(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcJE.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// JEQ: Jump if equal (ZF == 1).
|
|
//
|
|
// Forms:
|
|
//
|
|
// JEQ rel32
|
|
// JEQ rel8
|
|
func JEQ(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcJEQ.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// JG: Jump if greater (ZF == 0 and SF == OF).
|
|
//
|
|
// Forms:
|
|
//
|
|
// JG rel32
|
|
// JG rel8
|
|
func JG(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcJG.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// JGE: Jump if greater or equal (SF == OF).
|
|
//
|
|
// Forms:
|
|
//
|
|
// JGE rel32
|
|
// JGE rel8
|
|
func JGE(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcJGE.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// JGT: Jump if greater (ZF == 0 and SF == OF).
|
|
//
|
|
// Forms:
|
|
//
|
|
// JGT rel32
|
|
// JGT rel8
|
|
func JGT(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcJGT.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// JHI: Jump if above (CF == 0 and ZF == 0).
|
|
//
|
|
// Forms:
|
|
//
|
|
// JHI rel32
|
|
// JHI rel8
|
|
func JHI(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcJHI.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// JHS: Jump if above or equal (CF == 0).
|
|
//
|
|
// Forms:
|
|
//
|
|
// JHS rel32
|
|
// JHS rel8
|
|
func JHS(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcJHS.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// JL: Jump if less (SF != OF).
|
|
//
|
|
// Forms:
|
|
//
|
|
// JL rel32
|
|
// JL rel8
|
|
func JL(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcJL.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// JLE: Jump if less or equal (ZF == 1 or SF != OF).
|
|
//
|
|
// Forms:
|
|
//
|
|
// JLE rel32
|
|
// JLE rel8
|
|
func JLE(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcJLE.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// JLO: Jump if below (CF == 1).
|
|
//
|
|
// Forms:
|
|
//
|
|
// JLO rel32
|
|
// JLO rel8
|
|
func JLO(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcJLO.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// JLS: Jump if below or equal (CF == 1 or ZF == 1).
|
|
//
|
|
// Forms:
|
|
//
|
|
// JLS rel32
|
|
// JLS rel8
|
|
func JLS(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcJLS.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// JLT: Jump if less (SF != OF).
|
|
//
|
|
// Forms:
|
|
//
|
|
// JLT rel32
|
|
// JLT rel8
|
|
func JLT(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcJLT.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// JMI: Jump if sign (SF == 1).
|
|
//
|
|
// Forms:
|
|
//
|
|
// JMI rel32
|
|
// JMI rel8
|
|
func JMI(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcJMI.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// JMP: Jump Unconditionally.
|
|
//
|
|
// Forms:
|
|
//
|
|
// JMP rel32
|
|
// JMP rel8
|
|
// JMP m64
|
|
// JMP r64
|
|
func JMP(mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcJMP.Forms(), sffxs{}, []operand.Op{mr})
|
|
}
|
|
|
|
// JNA: Jump if below or equal (CF == 1 or ZF == 1).
|
|
//
|
|
// Forms:
|
|
//
|
|
// JNA rel32
|
|
// JNA rel8
|
|
func JNA(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcJNA.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// JNAE: Jump if below (CF == 1).
|
|
//
|
|
// Forms:
|
|
//
|
|
// JNAE rel32
|
|
// JNAE rel8
|
|
func JNAE(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcJNAE.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// JNB: Jump if above or equal (CF == 0).
|
|
//
|
|
// Forms:
|
|
//
|
|
// JNB rel32
|
|
// JNB rel8
|
|
func JNB(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcJNB.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// JNBE: Jump if above (CF == 0 and ZF == 0).
|
|
//
|
|
// Forms:
|
|
//
|
|
// JNBE rel32
|
|
// JNBE rel8
|
|
func JNBE(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcJNBE.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// JNC: Jump if above or equal (CF == 0).
|
|
//
|
|
// Forms:
|
|
//
|
|
// JNC rel32
|
|
// JNC rel8
|
|
func JNC(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcJNC.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// JNE: Jump if not equal (ZF == 0).
|
|
//
|
|
// Forms:
|
|
//
|
|
// JNE rel32
|
|
// JNE rel8
|
|
func JNE(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcJNE.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// JNG: Jump if less or equal (ZF == 1 or SF != OF).
|
|
//
|
|
// Forms:
|
|
//
|
|
// JNG rel32
|
|
// JNG rel8
|
|
func JNG(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcJNG.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// JNGE: Jump if less (SF != OF).
|
|
//
|
|
// Forms:
|
|
//
|
|
// JNGE rel32
|
|
// JNGE rel8
|
|
func JNGE(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcJNGE.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// JNL: Jump if greater or equal (SF == OF).
|
|
//
|
|
// Forms:
|
|
//
|
|
// JNL rel32
|
|
// JNL rel8
|
|
func JNL(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcJNL.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// JNLE: Jump if greater (ZF == 0 and SF == OF).
|
|
//
|
|
// Forms:
|
|
//
|
|
// JNLE rel32
|
|
// JNLE rel8
|
|
func JNLE(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcJNLE.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// JNO: Jump if not overflow (OF == 0).
|
|
//
|
|
// Forms:
|
|
//
|
|
// JNO rel32
|
|
// JNO rel8
|
|
func JNO(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcJNO.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// JNP: Jump if not parity (PF == 0).
|
|
//
|
|
// Forms:
|
|
//
|
|
// JNP rel32
|
|
// JNP rel8
|
|
func JNP(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcJNP.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// JNS: Jump if not sign (SF == 0).
|
|
//
|
|
// Forms:
|
|
//
|
|
// JNS rel32
|
|
// JNS rel8
|
|
func JNS(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcJNS.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// JNZ: Jump if not equal (ZF == 0).
|
|
//
|
|
// Forms:
|
|
//
|
|
// JNZ rel32
|
|
// JNZ rel8
|
|
func JNZ(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcJNZ.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// JO: Jump if overflow (OF == 1).
|
|
//
|
|
// Forms:
|
|
//
|
|
// JO rel32
|
|
// JO rel8
|
|
func JO(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcJO.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// JOC: Jump if not overflow (OF == 0).
|
|
//
|
|
// Forms:
|
|
//
|
|
// JOC rel32
|
|
// JOC rel8
|
|
func JOC(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcJOC.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// JOS: Jump if overflow (OF == 1).
|
|
//
|
|
// Forms:
|
|
//
|
|
// JOS rel32
|
|
// JOS rel8
|
|
func JOS(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcJOS.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// JP: Jump if parity (PF == 1).
|
|
//
|
|
// Forms:
|
|
//
|
|
// JP rel32
|
|
// JP rel8
|
|
func JP(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcJP.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// JPC: Jump if not parity (PF == 0).
|
|
//
|
|
// Forms:
|
|
//
|
|
// JPC rel32
|
|
// JPC rel8
|
|
func JPC(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcJPC.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// JPE: Jump if parity (PF == 1).
|
|
//
|
|
// Forms:
|
|
//
|
|
// JPE rel32
|
|
// JPE rel8
|
|
func JPE(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcJPE.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// JPL: Jump if not sign (SF == 0).
|
|
//
|
|
// Forms:
|
|
//
|
|
// JPL rel32
|
|
// JPL rel8
|
|
func JPL(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcJPL.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// JPO: Jump if not parity (PF == 0).
|
|
//
|
|
// Forms:
|
|
//
|
|
// JPO rel32
|
|
// JPO rel8
|
|
func JPO(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcJPO.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// JPS: Jump if parity (PF == 1).
|
|
//
|
|
// Forms:
|
|
//
|
|
// JPS rel32
|
|
// JPS rel8
|
|
func JPS(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcJPS.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// JS: Jump if sign (SF == 1).
|
|
//
|
|
// Forms:
|
|
//
|
|
// JS rel32
|
|
// JS rel8
|
|
func JS(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcJS.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// JZ: Jump if equal (ZF == 1).
|
|
//
|
|
// Forms:
|
|
//
|
|
// JZ rel32
|
|
// JZ rel8
|
|
func JZ(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcJZ.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// KADDB: ADD Two 8-bit Masks.
|
|
//
|
|
// Forms:
|
|
//
|
|
// KADDB k k k
|
|
func KADDB(k, k1, k2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcKADDB.Forms(), sffxs{}, []operand.Op{k, k1, k2})
|
|
}
|
|
|
|
// KADDD: ADD Two 32-bit Masks.
|
|
//
|
|
// Forms:
|
|
//
|
|
// KADDD k k k
|
|
func KADDD(k, k1, k2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcKADDD.Forms(), sffxs{}, []operand.Op{k, k1, k2})
|
|
}
|
|
|
|
// KADDQ: ADD Two 64-bit Masks.
|
|
//
|
|
// Forms:
|
|
//
|
|
// KADDQ k k k
|
|
func KADDQ(k, k1, k2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcKADDQ.Forms(), sffxs{}, []operand.Op{k, k1, k2})
|
|
}
|
|
|
|
// KADDW: ADD Two 16-bit Masks.
|
|
//
|
|
// Forms:
|
|
//
|
|
// KADDW k k k
|
|
func KADDW(k, k1, k2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcKADDW.Forms(), sffxs{}, []operand.Op{k, k1, k2})
|
|
}
|
|
|
|
// KANDB: Bitwise Logical AND 8-bit Masks.
|
|
//
|
|
// Forms:
|
|
//
|
|
// KANDB k k k
|
|
func KANDB(k, k1, k2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcKANDB.Forms(), sffxs{}, []operand.Op{k, k1, k2})
|
|
}
|
|
|
|
// KANDD: Bitwise Logical AND 32-bit Masks.
|
|
//
|
|
// Forms:
|
|
//
|
|
// KANDD k k k
|
|
func KANDD(k, k1, k2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcKANDD.Forms(), sffxs{}, []operand.Op{k, k1, k2})
|
|
}
|
|
|
|
// KANDNB: Bitwise Logical AND NOT 8-bit Masks.
|
|
//
|
|
// Forms:
|
|
//
|
|
// KANDNB k k k
|
|
func KANDNB(k, k1, k2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcKANDNB.Forms(), sffxs{}, []operand.Op{k, k1, k2})
|
|
}
|
|
|
|
// KANDND: Bitwise Logical AND NOT 32-bit Masks.
|
|
//
|
|
// Forms:
|
|
//
|
|
// KANDND k k k
|
|
func KANDND(k, k1, k2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcKANDND.Forms(), sffxs{}, []operand.Op{k, k1, k2})
|
|
}
|
|
|
|
// KANDNQ: Bitwise Logical AND NOT 64-bit Masks.
|
|
//
|
|
// Forms:
|
|
//
|
|
// KANDNQ k k k
|
|
func KANDNQ(k, k1, k2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcKANDNQ.Forms(), sffxs{}, []operand.Op{k, k1, k2})
|
|
}
|
|
|
|
// KANDNW: Bitwise Logical AND NOT 16-bit Masks.
|
|
//
|
|
// Forms:
|
|
//
|
|
// KANDNW k k k
|
|
func KANDNW(k, k1, k2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcKANDNW.Forms(), sffxs{}, []operand.Op{k, k1, k2})
|
|
}
|
|
|
|
// KANDQ: Bitwise Logical AND 64-bit Masks.
|
|
//
|
|
// Forms:
|
|
//
|
|
// KANDQ k k k
|
|
func KANDQ(k, k1, k2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcKANDQ.Forms(), sffxs{}, []operand.Op{k, k1, k2})
|
|
}
|
|
|
|
// KANDW: Bitwise Logical AND 16-bit Masks.
|
|
//
|
|
// Forms:
|
|
//
|
|
// KANDW k k k
|
|
func KANDW(k, k1, k2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcKANDW.Forms(), sffxs{}, []operand.Op{k, k1, k2})
|
|
}
|
|
|
|
// KMOVB: Move 8-bit Mask.
|
|
//
|
|
// Forms:
|
|
//
|
|
// KMOVB k k
|
|
// KMOVB k m8
|
|
// KMOVB k r32
|
|
// KMOVB m8 k
|
|
// KMOVB r32 k
|
|
func KMOVB(kmr, kmr1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcKMOVB.Forms(), sffxs{}, []operand.Op{kmr, kmr1})
|
|
}
|
|
|
|
// KMOVD: Move 32-bit Mask.
|
|
//
|
|
// Forms:
|
|
//
|
|
// KMOVD k k
|
|
// KMOVD k m32
|
|
// KMOVD k r32
|
|
// KMOVD m32 k
|
|
// KMOVD r32 k
|
|
func KMOVD(kmr, kmr1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcKMOVD.Forms(), sffxs{}, []operand.Op{kmr, kmr1})
|
|
}
|
|
|
|
// KMOVQ: Move 64-bit Mask.
|
|
//
|
|
// Forms:
|
|
//
|
|
// KMOVQ k k
|
|
// KMOVQ k m64
|
|
// KMOVQ k r64
|
|
// KMOVQ m64 k
|
|
// KMOVQ r64 k
|
|
func KMOVQ(kmr, kmr1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcKMOVQ.Forms(), sffxs{}, []operand.Op{kmr, kmr1})
|
|
}
|
|
|
|
// KMOVW: Move 16-bit Mask.
|
|
//
|
|
// Forms:
|
|
//
|
|
// KMOVW k k
|
|
// KMOVW k m16
|
|
// KMOVW k r32
|
|
// KMOVW m16 k
|
|
// KMOVW r32 k
|
|
func KMOVW(kmr, kmr1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcKMOVW.Forms(), sffxs{}, []operand.Op{kmr, kmr1})
|
|
}
|
|
|
|
// KNOTB: NOT 8-bit Mask Register.
|
|
//
|
|
// Forms:
|
|
//
|
|
// KNOTB k k
|
|
func KNOTB(k, k1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcKNOTB.Forms(), sffxs{}, []operand.Op{k, k1})
|
|
}
|
|
|
|
// KNOTD: NOT 32-bit Mask Register.
|
|
//
|
|
// Forms:
|
|
//
|
|
// KNOTD k k
|
|
func KNOTD(k, k1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcKNOTD.Forms(), sffxs{}, []operand.Op{k, k1})
|
|
}
|
|
|
|
// KNOTQ: NOT 64-bit Mask Register.
|
|
//
|
|
// Forms:
|
|
//
|
|
// KNOTQ k k
|
|
func KNOTQ(k, k1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcKNOTQ.Forms(), sffxs{}, []operand.Op{k, k1})
|
|
}
|
|
|
|
// KNOTW: NOT 16-bit Mask Register.
|
|
//
|
|
// Forms:
|
|
//
|
|
// KNOTW k k
|
|
func KNOTW(k, k1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcKNOTW.Forms(), sffxs{}, []operand.Op{k, k1})
|
|
}
|
|
|
|
// KORB: Bitwise Logical OR 8-bit Masks.
|
|
//
|
|
// Forms:
|
|
//
|
|
// KORB k k k
|
|
func KORB(k, k1, k2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcKORB.Forms(), sffxs{}, []operand.Op{k, k1, k2})
|
|
}
|
|
|
|
// KORD: Bitwise Logical OR 32-bit Masks.
|
|
//
|
|
// Forms:
|
|
//
|
|
// KORD k k k
|
|
func KORD(k, k1, k2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcKORD.Forms(), sffxs{}, []operand.Op{k, k1, k2})
|
|
}
|
|
|
|
// KORQ: Bitwise Logical OR 64-bit Masks.
|
|
//
|
|
// Forms:
|
|
//
|
|
// KORQ k k k
|
|
func KORQ(k, k1, k2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcKORQ.Forms(), sffxs{}, []operand.Op{k, k1, k2})
|
|
}
|
|
|
|
// KORTESTB: OR 8-bit Masks and Set Flags.
|
|
//
|
|
// Forms:
|
|
//
|
|
// KORTESTB k k
|
|
func KORTESTB(k, k1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcKORTESTB.Forms(), sffxs{}, []operand.Op{k, k1})
|
|
}
|
|
|
|
// KORTESTD: OR 32-bit Masks and Set Flags.
|
|
//
|
|
// Forms:
|
|
//
|
|
// KORTESTD k k
|
|
func KORTESTD(k, k1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcKORTESTD.Forms(), sffxs{}, []operand.Op{k, k1})
|
|
}
|
|
|
|
// KORTESTQ: OR 64-bit Masks and Set Flags.
|
|
//
|
|
// Forms:
|
|
//
|
|
// KORTESTQ k k
|
|
func KORTESTQ(k, k1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcKORTESTQ.Forms(), sffxs{}, []operand.Op{k, k1})
|
|
}
|
|
|
|
// KORTESTW: OR 16-bit Masks and Set Flags.
|
|
//
|
|
// Forms:
|
|
//
|
|
// KORTESTW k k
|
|
func KORTESTW(k, k1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcKORTESTW.Forms(), sffxs{}, []operand.Op{k, k1})
|
|
}
|
|
|
|
// KORW: Bitwise Logical OR 16-bit Masks.
|
|
//
|
|
// Forms:
|
|
//
|
|
// KORW k k k
|
|
func KORW(k, k1, k2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcKORW.Forms(), sffxs{}, []operand.Op{k, k1, k2})
|
|
}
|
|
|
|
// KSHIFTLB: Shift Left 8-bit Masks.
|
|
//
|
|
// Forms:
|
|
//
|
|
// KSHIFTLB imm8 k k
|
|
func KSHIFTLB(i, k, k1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcKSHIFTLB.Forms(), sffxs{}, []operand.Op{i, k, k1})
|
|
}
|
|
|
|
// KSHIFTLD: Shift Left 32-bit Masks.
|
|
//
|
|
// Forms:
|
|
//
|
|
// KSHIFTLD imm8 k k
|
|
func KSHIFTLD(i, k, k1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcKSHIFTLD.Forms(), sffxs{}, []operand.Op{i, k, k1})
|
|
}
|
|
|
|
// KSHIFTLQ: Shift Left 64-bit Masks.
|
|
//
|
|
// Forms:
|
|
//
|
|
// KSHIFTLQ imm8 k k
|
|
func KSHIFTLQ(i, k, k1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcKSHIFTLQ.Forms(), sffxs{}, []operand.Op{i, k, k1})
|
|
}
|
|
|
|
// KSHIFTLW: Shift Left 16-bit Masks.
|
|
//
|
|
// Forms:
|
|
//
|
|
// KSHIFTLW imm8 k k
|
|
func KSHIFTLW(i, k, k1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcKSHIFTLW.Forms(), sffxs{}, []operand.Op{i, k, k1})
|
|
}
|
|
|
|
// KSHIFTRB: Shift Right 8-bit Masks.
|
|
//
|
|
// Forms:
|
|
//
|
|
// KSHIFTRB imm8 k k
|
|
func KSHIFTRB(i, k, k1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcKSHIFTRB.Forms(), sffxs{}, []operand.Op{i, k, k1})
|
|
}
|
|
|
|
// KSHIFTRD: Shift Right 32-bit Masks.
|
|
//
|
|
// Forms:
|
|
//
|
|
// KSHIFTRD imm8 k k
|
|
func KSHIFTRD(i, k, k1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcKSHIFTRD.Forms(), sffxs{}, []operand.Op{i, k, k1})
|
|
}
|
|
|
|
// KSHIFTRQ: Shift Right 64-bit Masks.
|
|
//
|
|
// Forms:
|
|
//
|
|
// KSHIFTRQ imm8 k k
|
|
func KSHIFTRQ(i, k, k1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcKSHIFTRQ.Forms(), sffxs{}, []operand.Op{i, k, k1})
|
|
}
|
|
|
|
// KSHIFTRW: Shift Right 16-bit Masks.
|
|
//
|
|
// Forms:
|
|
//
|
|
// KSHIFTRW imm8 k k
|
|
func KSHIFTRW(i, k, k1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcKSHIFTRW.Forms(), sffxs{}, []operand.Op{i, k, k1})
|
|
}
|
|
|
|
// KTESTB: Bit Test 8-bit Masks and Set Flags.
|
|
//
|
|
// Forms:
|
|
//
|
|
// KTESTB k k
|
|
func KTESTB(k, k1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcKTESTB.Forms(), sffxs{}, []operand.Op{k, k1})
|
|
}
|
|
|
|
// KTESTD: Bit Test 32-bit Masks and Set Flags.
|
|
//
|
|
// Forms:
|
|
//
|
|
// KTESTD k k
|
|
func KTESTD(k, k1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcKTESTD.Forms(), sffxs{}, []operand.Op{k, k1})
|
|
}
|
|
|
|
// KTESTQ: Bit Test 64-bit Masks and Set Flags.
|
|
//
|
|
// Forms:
|
|
//
|
|
// KTESTQ k k
|
|
func KTESTQ(k, k1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcKTESTQ.Forms(), sffxs{}, []operand.Op{k, k1})
|
|
}
|
|
|
|
// KTESTW: Bit Test 16-bit Masks and Set Flags.
|
|
//
|
|
// Forms:
|
|
//
|
|
// KTESTW k k
|
|
func KTESTW(k, k1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcKTESTW.Forms(), sffxs{}, []operand.Op{k, k1})
|
|
}
|
|
|
|
// KUNPCKBW: Unpack and Interleave 8-bit Masks.
|
|
//
|
|
// Forms:
|
|
//
|
|
// KUNPCKBW k k k
|
|
func KUNPCKBW(k, k1, k2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcKUNPCKBW.Forms(), sffxs{}, []operand.Op{k, k1, k2})
|
|
}
|
|
|
|
// KUNPCKDQ: Unpack and Interleave 32-bit Masks.
|
|
//
|
|
// Forms:
|
|
//
|
|
// KUNPCKDQ k k k
|
|
func KUNPCKDQ(k, k1, k2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcKUNPCKDQ.Forms(), sffxs{}, []operand.Op{k, k1, k2})
|
|
}
|
|
|
|
// KUNPCKWD: Unpack and Interleave 16-bit Masks.
|
|
//
|
|
// Forms:
|
|
//
|
|
// KUNPCKWD k k k
|
|
func KUNPCKWD(k, k1, k2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcKUNPCKWD.Forms(), sffxs{}, []operand.Op{k, k1, k2})
|
|
}
|
|
|
|
// KXNORB: Bitwise Logical XNOR 8-bit Masks.
|
|
//
|
|
// Forms:
|
|
//
|
|
// KXNORB k k k
|
|
func KXNORB(k, k1, k2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcKXNORB.Forms(), sffxs{}, []operand.Op{k, k1, k2})
|
|
}
|
|
|
|
// KXNORD: Bitwise Logical XNOR 32-bit Masks.
|
|
//
|
|
// Forms:
|
|
//
|
|
// KXNORD k k k
|
|
func KXNORD(k, k1, k2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcKXNORD.Forms(), sffxs{}, []operand.Op{k, k1, k2})
|
|
}
|
|
|
|
// KXNORQ: Bitwise Logical XNOR 64-bit Masks.
|
|
//
|
|
// Forms:
|
|
//
|
|
// KXNORQ k k k
|
|
func KXNORQ(k, k1, k2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcKXNORQ.Forms(), sffxs{}, []operand.Op{k, k1, k2})
|
|
}
|
|
|
|
// KXNORW: Bitwise Logical XNOR 16-bit Masks.
|
|
//
|
|
// Forms:
|
|
//
|
|
// KXNORW k k k
|
|
func KXNORW(k, k1, k2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcKXNORW.Forms(), sffxs{}, []operand.Op{k, k1, k2})
|
|
}
|
|
|
|
// KXORB: Bitwise Logical XOR 8-bit Masks.
|
|
//
|
|
// Forms:
|
|
//
|
|
// KXORB k k k
|
|
func KXORB(k, k1, k2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcKXORB.Forms(), sffxs{}, []operand.Op{k, k1, k2})
|
|
}
|
|
|
|
// KXORD: Bitwise Logical XOR 32-bit Masks.
|
|
//
|
|
// Forms:
|
|
//
|
|
// KXORD k k k
|
|
func KXORD(k, k1, k2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcKXORD.Forms(), sffxs{}, []operand.Op{k, k1, k2})
|
|
}
|
|
|
|
// KXORQ: Bitwise Logical XOR 64-bit Masks.
|
|
//
|
|
// Forms:
|
|
//
|
|
// KXORQ k k k
|
|
func KXORQ(k, k1, k2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcKXORQ.Forms(), sffxs{}, []operand.Op{k, k1, k2})
|
|
}
|
|
|
|
// KXORW: Bitwise Logical XOR 16-bit Masks.
|
|
//
|
|
// Forms:
|
|
//
|
|
// KXORW k k k
|
|
func KXORW(k, k1, k2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcKXORW.Forms(), sffxs{}, []operand.Op{k, k1, k2})
|
|
}
|
|
|
|
// LDDQU: Load Unaligned Integer 128 Bits.
|
|
//
|
|
// Forms:
|
|
//
|
|
// LDDQU m128 xmm
|
|
func LDDQU(m, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcLDDQU.Forms(), sffxs{}, []operand.Op{m, x})
|
|
}
|
|
|
|
// LDMXCSR: Load MXCSR Register.
|
|
//
|
|
// Forms:
|
|
//
|
|
// LDMXCSR m32
|
|
func LDMXCSR(m operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcLDMXCSR.Forms(), sffxs{}, []operand.Op{m})
|
|
}
|
|
|
|
// LEAL: Load Effective Address.
|
|
//
|
|
// Forms:
|
|
//
|
|
// LEAL m r32
|
|
func LEAL(m, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcLEAL.Forms(), sffxs{}, []operand.Op{m, r})
|
|
}
|
|
|
|
// LEAQ: Load Effective Address.
|
|
//
|
|
// Forms:
|
|
//
|
|
// LEAQ m r64
|
|
func LEAQ(m, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcLEAQ.Forms(), sffxs{}, []operand.Op{m, r})
|
|
}
|
|
|
|
// LEAW: Load Effective Address.
|
|
//
|
|
// Forms:
|
|
//
|
|
// LEAW m r16
|
|
func LEAW(m, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcLEAW.Forms(), sffxs{}, []operand.Op{m, r})
|
|
}
|
|
|
|
// LFENCE: Load Fence.
|
|
//
|
|
// Forms:
|
|
//
|
|
// LFENCE
|
|
func LFENCE() (*intrep.Instruction, error) {
|
|
return build(opcLFENCE.Forms(), sffxs{}, []operand.Op{})
|
|
}
|
|
|
|
// LZCNTL: Count the Number of Leading Zero Bits.
|
|
//
|
|
// Forms:
|
|
//
|
|
// LZCNTL m32 r32
|
|
// LZCNTL r32 r32
|
|
func LZCNTL(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcLZCNTL.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// LZCNTQ: Count the Number of Leading Zero Bits.
|
|
//
|
|
// Forms:
|
|
//
|
|
// LZCNTQ m64 r64
|
|
// LZCNTQ r64 r64
|
|
func LZCNTQ(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcLZCNTQ.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// LZCNTW: Count the Number of Leading Zero Bits.
|
|
//
|
|
// Forms:
|
|
//
|
|
// LZCNTW m16 r16
|
|
// LZCNTW r16 r16
|
|
func LZCNTW(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcLZCNTW.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// MASKMOVDQU: Store Selected Bytes of Double Quadword.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MASKMOVDQU xmm xmm
|
|
func MASKMOVDQU(x, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMASKMOVDQU.Forms(), sffxs{}, []operand.Op{x, x1})
|
|
}
|
|
|
|
// MASKMOVOU: Store Selected Bytes of Double Quadword.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MASKMOVOU xmm xmm
|
|
func MASKMOVOU(x, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMASKMOVOU.Forms(), sffxs{}, []operand.Op{x, x1})
|
|
}
|
|
|
|
// MAXPD: Return Maximum Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MAXPD m128 xmm
|
|
// MAXPD xmm xmm
|
|
func MAXPD(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMAXPD.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// MAXPS: Return Maximum Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MAXPS m128 xmm
|
|
// MAXPS xmm xmm
|
|
func MAXPS(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMAXPS.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// MAXSD: Return Maximum Scalar Double-Precision Floating-Point Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MAXSD m64 xmm
|
|
// MAXSD xmm xmm
|
|
func MAXSD(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMAXSD.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// MAXSS: Return Maximum Scalar Single-Precision Floating-Point Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MAXSS m32 xmm
|
|
// MAXSS xmm xmm
|
|
func MAXSS(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMAXSS.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// MFENCE: Memory Fence.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MFENCE
|
|
func MFENCE() (*intrep.Instruction, error) {
|
|
return build(opcMFENCE.Forms(), sffxs{}, []operand.Op{})
|
|
}
|
|
|
|
// MINPD: Return Minimum Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MINPD m128 xmm
|
|
// MINPD xmm xmm
|
|
func MINPD(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMINPD.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// MINPS: Return Minimum Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MINPS m128 xmm
|
|
// MINPS xmm xmm
|
|
func MINPS(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMINPS.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// MINSD: Return Minimum Scalar Double-Precision Floating-Point Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MINSD m64 xmm
|
|
// MINSD xmm xmm
|
|
func MINSD(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMINSD.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// MINSS: Return Minimum Scalar Single-Precision Floating-Point Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MINSS m32 xmm
|
|
// MINSS xmm xmm
|
|
func MINSS(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMINSS.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// MONITOR: Monitor a Linear Address Range.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MONITOR
|
|
func MONITOR() (*intrep.Instruction, error) {
|
|
return build(opcMONITOR.Forms(), sffxs{}, []operand.Op{})
|
|
}
|
|
|
|
// MOVAPD: Move Aligned Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MOVAPD m128 xmm
|
|
// MOVAPD xmm m128
|
|
// MOVAPD xmm xmm
|
|
func MOVAPD(mx, mx1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMOVAPD.Forms(), sffxs{}, []operand.Op{mx, mx1})
|
|
}
|
|
|
|
// MOVAPS: Move Aligned Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MOVAPS m128 xmm
|
|
// MOVAPS xmm m128
|
|
// MOVAPS xmm xmm
|
|
func MOVAPS(mx, mx1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMOVAPS.Forms(), sffxs{}, []operand.Op{mx, mx1})
|
|
}
|
|
|
|
// MOVB: Move.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MOVB imm8 m8
|
|
// MOVB imm8 r8
|
|
// MOVB m8 r8
|
|
// MOVB r8 m8
|
|
// MOVB r8 r8
|
|
func MOVB(imr, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMOVB.Forms(), sffxs{}, []operand.Op{imr, mr})
|
|
}
|
|
|
|
// MOVBELL: Move Data After Swapping Bytes.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MOVBELL m32 r32
|
|
// MOVBELL r32 m32
|
|
func MOVBELL(mr, mr1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMOVBELL.Forms(), sffxs{}, []operand.Op{mr, mr1})
|
|
}
|
|
|
|
// MOVBEQQ: Move Data After Swapping Bytes.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MOVBEQQ m64 r64
|
|
// MOVBEQQ r64 m64
|
|
func MOVBEQQ(mr, mr1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMOVBEQQ.Forms(), sffxs{}, []operand.Op{mr, mr1})
|
|
}
|
|
|
|
// MOVBEWW: Move Data After Swapping Bytes.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MOVBEWW m16 r16
|
|
// MOVBEWW r16 m16
|
|
func MOVBEWW(mr, mr1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMOVBEWW.Forms(), sffxs{}, []operand.Op{mr, mr1})
|
|
}
|
|
|
|
// MOVBLSX: Move with Sign-Extension.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MOVBLSX m8 r32
|
|
// MOVBLSX r8 r32
|
|
func MOVBLSX(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMOVBLSX.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// MOVBLZX: Move with Zero-Extend.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MOVBLZX m8 r32
|
|
// MOVBLZX r8 r32
|
|
func MOVBLZX(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMOVBLZX.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// MOVBQSX: Move with Sign-Extension.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MOVBQSX m8 r64
|
|
// MOVBQSX r8 r64
|
|
func MOVBQSX(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMOVBQSX.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// MOVBQZX: Move with Zero-Extend.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MOVBQZX m8 r64
|
|
// MOVBQZX r8 r64
|
|
func MOVBQZX(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMOVBQZX.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// MOVBWSX: Move with Sign-Extension.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MOVBWSX m8 r16
|
|
// MOVBWSX r8 r16
|
|
func MOVBWSX(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMOVBWSX.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// MOVBWZX: Move with Zero-Extend.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MOVBWZX m8 r16
|
|
// MOVBWZX r8 r16
|
|
func MOVBWZX(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMOVBWZX.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// MOVD: Move.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MOVD m32 xmm
|
|
// MOVD m64 xmm
|
|
// MOVD r32 xmm
|
|
// MOVD r64 xmm
|
|
// MOVD xmm m32
|
|
// MOVD xmm m64
|
|
// MOVD xmm r32
|
|
// MOVD xmm r64
|
|
// MOVD xmm xmm
|
|
// MOVD imm32 m64
|
|
// MOVD imm32 r64
|
|
// MOVD imm64 r64
|
|
// MOVD m64 r64
|
|
// MOVD r64 m64
|
|
// MOVD r64 r64
|
|
func MOVD(imrx, mrx operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMOVD.Forms(), sffxs{}, []operand.Op{imrx, mrx})
|
|
}
|
|
|
|
// MOVDDUP: Move One Double-FP and Duplicate.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MOVDDUP m64 xmm
|
|
// MOVDDUP xmm xmm
|
|
func MOVDDUP(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMOVDDUP.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// MOVDQ2Q: Move.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MOVDQ2Q m32 xmm
|
|
// MOVDQ2Q m64 xmm
|
|
// MOVDQ2Q r32 xmm
|
|
// MOVDQ2Q r64 xmm
|
|
// MOVDQ2Q xmm m32
|
|
// MOVDQ2Q xmm m64
|
|
// MOVDQ2Q xmm r32
|
|
// MOVDQ2Q xmm r64
|
|
// MOVDQ2Q xmm xmm
|
|
// MOVDQ2Q imm32 m64
|
|
// MOVDQ2Q imm32 r64
|
|
// MOVDQ2Q imm64 r64
|
|
// MOVDQ2Q m64 r64
|
|
// MOVDQ2Q r64 m64
|
|
// MOVDQ2Q r64 r64
|
|
func MOVDQ2Q(imrx, mrx operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMOVDQ2Q.Forms(), sffxs{}, []operand.Op{imrx, mrx})
|
|
}
|
|
|
|
// MOVHLPS: Move Packed Single-Precision Floating-Point Values High to Low.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MOVHLPS xmm xmm
|
|
func MOVHLPS(x, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMOVHLPS.Forms(), sffxs{}, []operand.Op{x, x1})
|
|
}
|
|
|
|
// MOVHPD: Move High Packed Double-Precision Floating-Point Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MOVHPD m64 xmm
|
|
// MOVHPD xmm m64
|
|
func MOVHPD(mx, mx1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMOVHPD.Forms(), sffxs{}, []operand.Op{mx, mx1})
|
|
}
|
|
|
|
// MOVHPS: Move High Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MOVHPS m64 xmm
|
|
// MOVHPS xmm m64
|
|
func MOVHPS(mx, mx1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMOVHPS.Forms(), sffxs{}, []operand.Op{mx, mx1})
|
|
}
|
|
|
|
// MOVL: Move.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MOVL imm32 m32
|
|
// MOVL imm32 r32
|
|
// MOVL m32 r32
|
|
// MOVL r32 m32
|
|
// MOVL r32 r32
|
|
func MOVL(imr, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMOVL.Forms(), sffxs{}, []operand.Op{imr, mr})
|
|
}
|
|
|
|
// MOVLHPS: Move Packed Single-Precision Floating-Point Values Low to High.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MOVLHPS xmm xmm
|
|
func MOVLHPS(x, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMOVLHPS.Forms(), sffxs{}, []operand.Op{x, x1})
|
|
}
|
|
|
|
// MOVLPD: Move Low Packed Double-Precision Floating-Point Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MOVLPD m64 xmm
|
|
// MOVLPD xmm m64
|
|
func MOVLPD(mx, mx1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMOVLPD.Forms(), sffxs{}, []operand.Op{mx, mx1})
|
|
}
|
|
|
|
// MOVLPS: Move Low Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MOVLPS m64 xmm
|
|
// MOVLPS xmm m64
|
|
func MOVLPS(mx, mx1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMOVLPS.Forms(), sffxs{}, []operand.Op{mx, mx1})
|
|
}
|
|
|
|
// MOVLQSX: Move Doubleword to Quadword with Sign-Extension.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MOVLQSX m32 r64
|
|
// MOVLQSX r32 r64
|
|
func MOVLQSX(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMOVLQSX.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// MOVLQZX: Move with Zero-Extend.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MOVLQZX m32 r64
|
|
func MOVLQZX(m, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMOVLQZX.Forms(), sffxs{}, []operand.Op{m, r})
|
|
}
|
|
|
|
// MOVMSKPD: Extract Packed Double-Precision Floating-Point Sign Mask.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MOVMSKPD xmm r32
|
|
func MOVMSKPD(x, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMOVMSKPD.Forms(), sffxs{}, []operand.Op{x, r})
|
|
}
|
|
|
|
// MOVMSKPS: Extract Packed Single-Precision Floating-Point Sign Mask.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MOVMSKPS xmm r32
|
|
func MOVMSKPS(x, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMOVMSKPS.Forms(), sffxs{}, []operand.Op{x, r})
|
|
}
|
|
|
|
// MOVNTDQ: Store Double Quadword Using Non-Temporal Hint.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MOVNTDQ xmm m128
|
|
func MOVNTDQ(x, m operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMOVNTDQ.Forms(), sffxs{}, []operand.Op{x, m})
|
|
}
|
|
|
|
// MOVNTDQA: Load Double Quadword Non-Temporal Aligned Hint.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MOVNTDQA m128 xmm
|
|
func MOVNTDQA(m, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMOVNTDQA.Forms(), sffxs{}, []operand.Op{m, x})
|
|
}
|
|
|
|
// MOVNTIL: Store Doubleword Using Non-Temporal Hint.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MOVNTIL r32 m32
|
|
func MOVNTIL(r, m operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMOVNTIL.Forms(), sffxs{}, []operand.Op{r, m})
|
|
}
|
|
|
|
// MOVNTIQ: Store Doubleword Using Non-Temporal Hint.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MOVNTIQ r64 m64
|
|
func MOVNTIQ(r, m operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMOVNTIQ.Forms(), sffxs{}, []operand.Op{r, m})
|
|
}
|
|
|
|
// MOVNTO: Store Double Quadword Using Non-Temporal Hint.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MOVNTO xmm m128
|
|
func MOVNTO(x, m operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMOVNTO.Forms(), sffxs{}, []operand.Op{x, m})
|
|
}
|
|
|
|
// MOVNTPD: Store Packed Double-Precision Floating-Point Values Using Non-Temporal Hint.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MOVNTPD xmm m128
|
|
func MOVNTPD(x, m operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMOVNTPD.Forms(), sffxs{}, []operand.Op{x, m})
|
|
}
|
|
|
|
// MOVNTPS: Store Packed Single-Precision Floating-Point Values Using Non-Temporal Hint.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MOVNTPS xmm m128
|
|
func MOVNTPS(x, m operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMOVNTPS.Forms(), sffxs{}, []operand.Op{x, m})
|
|
}
|
|
|
|
// MOVO: Move Aligned Double Quadword.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MOVO m128 xmm
|
|
// MOVO xmm m128
|
|
// MOVO xmm xmm
|
|
func MOVO(mx, mx1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMOVO.Forms(), sffxs{}, []operand.Op{mx, mx1})
|
|
}
|
|
|
|
// MOVOA: Move Aligned Double Quadword.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MOVOA m128 xmm
|
|
// MOVOA xmm m128
|
|
// MOVOA xmm xmm
|
|
func MOVOA(mx, mx1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMOVOA.Forms(), sffxs{}, []operand.Op{mx, mx1})
|
|
}
|
|
|
|
// MOVOU: Move Unaligned Double Quadword.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MOVOU m128 xmm
|
|
// MOVOU xmm m128
|
|
// MOVOU xmm xmm
|
|
func MOVOU(mx, mx1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMOVOU.Forms(), sffxs{}, []operand.Op{mx, mx1})
|
|
}
|
|
|
|
// MOVQ: Move.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MOVQ m32 xmm
|
|
// MOVQ m64 xmm
|
|
// MOVQ r32 xmm
|
|
// MOVQ r64 xmm
|
|
// MOVQ xmm m32
|
|
// MOVQ xmm m64
|
|
// MOVQ xmm r32
|
|
// MOVQ xmm r64
|
|
// MOVQ xmm xmm
|
|
// MOVQ imm32 m64
|
|
// MOVQ imm32 r64
|
|
// MOVQ imm64 r64
|
|
// MOVQ m64 r64
|
|
// MOVQ r64 m64
|
|
// MOVQ r64 r64
|
|
func MOVQ(imrx, mrx operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMOVQ.Forms(), sffxs{}, []operand.Op{imrx, mrx})
|
|
}
|
|
|
|
// MOVSD: Move Scalar Double-Precision Floating-Point Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MOVSD m64 xmm
|
|
// MOVSD xmm m64
|
|
// MOVSD xmm xmm
|
|
func MOVSD(mx, mx1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMOVSD.Forms(), sffxs{}, []operand.Op{mx, mx1})
|
|
}
|
|
|
|
// MOVSHDUP: Move Packed Single-FP High and Duplicate.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MOVSHDUP m128 xmm
|
|
// MOVSHDUP xmm xmm
|
|
func MOVSHDUP(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMOVSHDUP.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// MOVSLDUP: Move Packed Single-FP Low and Duplicate.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MOVSLDUP m128 xmm
|
|
// MOVSLDUP xmm xmm
|
|
func MOVSLDUP(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMOVSLDUP.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// MOVSS: Move Scalar Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MOVSS m32 xmm
|
|
// MOVSS xmm m32
|
|
// MOVSS xmm xmm
|
|
func MOVSS(mx, mx1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMOVSS.Forms(), sffxs{}, []operand.Op{mx, mx1})
|
|
}
|
|
|
|
// MOVUPD: Move Unaligned Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MOVUPD m128 xmm
|
|
// MOVUPD xmm m128
|
|
// MOVUPD xmm xmm
|
|
func MOVUPD(mx, mx1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMOVUPD.Forms(), sffxs{}, []operand.Op{mx, mx1})
|
|
}
|
|
|
|
// MOVUPS: Move Unaligned Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MOVUPS m128 xmm
|
|
// MOVUPS xmm m128
|
|
// MOVUPS xmm xmm
|
|
func MOVUPS(mx, mx1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMOVUPS.Forms(), sffxs{}, []operand.Op{mx, mx1})
|
|
}
|
|
|
|
// MOVW: Move.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MOVW imm16 m16
|
|
// MOVW imm16 r16
|
|
// MOVW m16 r16
|
|
// MOVW r16 m16
|
|
// MOVW r16 r16
|
|
func MOVW(imr, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMOVW.Forms(), sffxs{}, []operand.Op{imr, mr})
|
|
}
|
|
|
|
// MOVWLSX: Move with Sign-Extension.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MOVWLSX m16 r32
|
|
// MOVWLSX r16 r32
|
|
func MOVWLSX(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMOVWLSX.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// MOVWLZX: Move with Zero-Extend.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MOVWLZX m16 r32
|
|
// MOVWLZX r16 r32
|
|
func MOVWLZX(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMOVWLZX.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// MOVWQSX: Move with Sign-Extension.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MOVWQSX m16 r64
|
|
// MOVWQSX r16 r64
|
|
func MOVWQSX(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMOVWQSX.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// MOVWQZX: Move with Zero-Extend.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MOVWQZX m16 r64
|
|
// MOVWQZX r16 r64
|
|
func MOVWQZX(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMOVWQZX.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// MPSADBW: Compute Multiple Packed Sums of Absolute Difference.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MPSADBW imm8 m128 xmm
|
|
// MPSADBW imm8 xmm xmm
|
|
func MPSADBW(i, mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMPSADBW.Forms(), sffxs{}, []operand.Op{i, mx, x})
|
|
}
|
|
|
|
// MULB: Unsigned Multiply.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MULB m8
|
|
// MULB r8
|
|
func MULB(mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMULB.Forms(), sffxs{}, []operand.Op{mr})
|
|
}
|
|
|
|
// MULL: Unsigned Multiply.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MULL m32
|
|
// MULL r32
|
|
func MULL(mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMULL.Forms(), sffxs{}, []operand.Op{mr})
|
|
}
|
|
|
|
// MULPD: Multiply Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MULPD m128 xmm
|
|
// MULPD xmm xmm
|
|
func MULPD(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMULPD.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// MULPS: Multiply Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MULPS m128 xmm
|
|
// MULPS xmm xmm
|
|
func MULPS(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMULPS.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// MULQ: Unsigned Multiply.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MULQ m64
|
|
// MULQ r64
|
|
func MULQ(mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMULQ.Forms(), sffxs{}, []operand.Op{mr})
|
|
}
|
|
|
|
// MULSD: Multiply Scalar Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MULSD m64 xmm
|
|
// MULSD xmm xmm
|
|
func MULSD(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMULSD.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// MULSS: Multiply Scalar Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MULSS m32 xmm
|
|
// MULSS xmm xmm
|
|
func MULSS(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMULSS.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// MULW: Unsigned Multiply.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MULW m16
|
|
// MULW r16
|
|
func MULW(mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMULW.Forms(), sffxs{}, []operand.Op{mr})
|
|
}
|
|
|
|
// MULXL: Unsigned Multiply Without Affecting Flags.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MULXL m32 r32 r32
|
|
// MULXL r32 r32 r32
|
|
func MULXL(mr, r, r1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMULXL.Forms(), sffxs{}, []operand.Op{mr, r, r1})
|
|
}
|
|
|
|
// MULXQ: Unsigned Multiply Without Affecting Flags.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MULXQ m64 r64 r64
|
|
// MULXQ r64 r64 r64
|
|
func MULXQ(mr, r, r1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcMULXQ.Forms(), sffxs{}, []operand.Op{mr, r, r1})
|
|
}
|
|
|
|
// MWAIT: Monitor Wait.
|
|
//
|
|
// Forms:
|
|
//
|
|
// MWAIT
|
|
func MWAIT() (*intrep.Instruction, error) {
|
|
return build(opcMWAIT.Forms(), sffxs{}, []operand.Op{})
|
|
}
|
|
|
|
// NEGB: Two's Complement Negation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// NEGB m8
|
|
// NEGB r8
|
|
func NEGB(mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcNEGB.Forms(), sffxs{}, []operand.Op{mr})
|
|
}
|
|
|
|
// NEGL: Two's Complement Negation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// NEGL m32
|
|
// NEGL r32
|
|
func NEGL(mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcNEGL.Forms(), sffxs{}, []operand.Op{mr})
|
|
}
|
|
|
|
// NEGQ: Two's Complement Negation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// NEGQ m64
|
|
// NEGQ r64
|
|
func NEGQ(mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcNEGQ.Forms(), sffxs{}, []operand.Op{mr})
|
|
}
|
|
|
|
// NEGW: Two's Complement Negation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// NEGW m16
|
|
// NEGW r16
|
|
func NEGW(mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcNEGW.Forms(), sffxs{}, []operand.Op{mr})
|
|
}
|
|
|
|
// NOP: No Operation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// NOP
|
|
func NOP() (*intrep.Instruction, error) {
|
|
return build(opcNOP.Forms(), sffxs{}, []operand.Op{})
|
|
}
|
|
|
|
// NOTB: One's Complement Negation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// NOTB m8
|
|
// NOTB r8
|
|
func NOTB(mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcNOTB.Forms(), sffxs{}, []operand.Op{mr})
|
|
}
|
|
|
|
// NOTL: One's Complement Negation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// NOTL m32
|
|
// NOTL r32
|
|
func NOTL(mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcNOTL.Forms(), sffxs{}, []operand.Op{mr})
|
|
}
|
|
|
|
// NOTQ: One's Complement Negation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// NOTQ m64
|
|
// NOTQ r64
|
|
func NOTQ(mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcNOTQ.Forms(), sffxs{}, []operand.Op{mr})
|
|
}
|
|
|
|
// NOTW: One's Complement Negation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// NOTW m16
|
|
// NOTW r16
|
|
func NOTW(mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcNOTW.Forms(), sffxs{}, []operand.Op{mr})
|
|
}
|
|
|
|
// ORB: Logical Inclusive OR.
|
|
//
|
|
// Forms:
|
|
//
|
|
// ORB imm8 al
|
|
// ORB imm8 m8
|
|
// ORB imm8 r8
|
|
// ORB m8 r8
|
|
// ORB r8 m8
|
|
// ORB r8 r8
|
|
func ORB(imr, amr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcORB.Forms(), sffxs{}, []operand.Op{imr, amr})
|
|
}
|
|
|
|
// ORL: Logical Inclusive OR.
|
|
//
|
|
// Forms:
|
|
//
|
|
// ORL imm32 eax
|
|
// ORL imm32 m32
|
|
// ORL imm32 r32
|
|
// ORL imm8 m32
|
|
// ORL imm8 r32
|
|
// ORL m32 r32
|
|
// ORL r32 m32
|
|
// ORL r32 r32
|
|
func ORL(imr, emr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcORL.Forms(), sffxs{}, []operand.Op{imr, emr})
|
|
}
|
|
|
|
// ORPD: Bitwise Logical OR of Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// ORPD m128 xmm
|
|
// ORPD xmm xmm
|
|
func ORPD(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcORPD.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// ORPS: Bitwise Logical OR of Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// ORPS m128 xmm
|
|
// ORPS xmm xmm
|
|
func ORPS(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcORPS.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// ORQ: Logical Inclusive OR.
|
|
//
|
|
// Forms:
|
|
//
|
|
// ORQ imm32 m64
|
|
// ORQ imm32 r64
|
|
// ORQ imm32 rax
|
|
// ORQ imm8 m64
|
|
// ORQ imm8 r64
|
|
// ORQ m64 r64
|
|
// ORQ r64 m64
|
|
// ORQ r64 r64
|
|
func ORQ(imr, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcORQ.Forms(), sffxs{}, []operand.Op{imr, mr})
|
|
}
|
|
|
|
// ORW: Logical Inclusive OR.
|
|
//
|
|
// Forms:
|
|
//
|
|
// ORW imm16 ax
|
|
// ORW imm16 m16
|
|
// ORW imm16 r16
|
|
// ORW imm8 m16
|
|
// ORW imm8 r16
|
|
// ORW m16 r16
|
|
// ORW r16 m16
|
|
// ORW r16 r16
|
|
func ORW(imr, amr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcORW.Forms(), sffxs{}, []operand.Op{imr, amr})
|
|
}
|
|
|
|
// PABSB: Packed Absolute Value of Byte Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PABSB m128 xmm
|
|
// PABSB xmm xmm
|
|
func PABSB(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPABSB.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PABSD: Packed Absolute Value of Doubleword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PABSD m128 xmm
|
|
// PABSD xmm xmm
|
|
func PABSD(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPABSD.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PABSW: Packed Absolute Value of Word Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PABSW m128 xmm
|
|
// PABSW xmm xmm
|
|
func PABSW(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPABSW.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PACKSSLW: Pack Doublewords into Words with Signed Saturation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PACKSSLW m128 xmm
|
|
// PACKSSLW xmm xmm
|
|
func PACKSSLW(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPACKSSLW.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PACKSSWB: Pack Words into Bytes with Signed Saturation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PACKSSWB m128 xmm
|
|
// PACKSSWB xmm xmm
|
|
func PACKSSWB(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPACKSSWB.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PACKUSDW: Pack Doublewords into Words with Unsigned Saturation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PACKUSDW m128 xmm
|
|
// PACKUSDW xmm xmm
|
|
func PACKUSDW(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPACKUSDW.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PACKUSWB: Pack Words into Bytes with Unsigned Saturation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PACKUSWB m128 xmm
|
|
// PACKUSWB xmm xmm
|
|
func PACKUSWB(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPACKUSWB.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PADDB: Add Packed Byte Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PADDB m128 xmm
|
|
// PADDB xmm xmm
|
|
func PADDB(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPADDB.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PADDD: Add Packed Doubleword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PADDD m128 xmm
|
|
// PADDD xmm xmm
|
|
func PADDD(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPADDD.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PADDL: Add Packed Doubleword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PADDL m128 xmm
|
|
// PADDL xmm xmm
|
|
func PADDL(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPADDL.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PADDQ: Add Packed Quadword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PADDQ m128 xmm
|
|
// PADDQ xmm xmm
|
|
func PADDQ(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPADDQ.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PADDSB: Add Packed Signed Byte Integers with Signed Saturation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PADDSB m128 xmm
|
|
// PADDSB xmm xmm
|
|
func PADDSB(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPADDSB.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PADDSW: Add Packed Signed Word Integers with Signed Saturation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PADDSW m128 xmm
|
|
// PADDSW xmm xmm
|
|
func PADDSW(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPADDSW.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PADDUSB: Add Packed Unsigned Byte Integers with Unsigned Saturation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PADDUSB m128 xmm
|
|
// PADDUSB xmm xmm
|
|
func PADDUSB(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPADDUSB.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PADDUSW: Add Packed Unsigned Word Integers with Unsigned Saturation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PADDUSW m128 xmm
|
|
// PADDUSW xmm xmm
|
|
func PADDUSW(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPADDUSW.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PADDW: Add Packed Word Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PADDW m128 xmm
|
|
// PADDW xmm xmm
|
|
func PADDW(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPADDW.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PALIGNR: Packed Align Right.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PALIGNR imm8 m128 xmm
|
|
// PALIGNR imm8 xmm xmm
|
|
func PALIGNR(i, mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPALIGNR.Forms(), sffxs{}, []operand.Op{i, mx, x})
|
|
}
|
|
|
|
// PAND: Packed Bitwise Logical AND.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PAND m128 xmm
|
|
// PAND xmm xmm
|
|
func PAND(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPAND.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PANDN: Packed Bitwise Logical AND NOT.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PANDN m128 xmm
|
|
// PANDN xmm xmm
|
|
func PANDN(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPANDN.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PAUSE: Spin Loop Hint.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PAUSE
|
|
func PAUSE() (*intrep.Instruction, error) {
|
|
return build(opcPAUSE.Forms(), sffxs{}, []operand.Op{})
|
|
}
|
|
|
|
// PAVGB: Average Packed Byte Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PAVGB m128 xmm
|
|
// PAVGB xmm xmm
|
|
func PAVGB(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPAVGB.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PAVGW: Average Packed Word Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PAVGW m128 xmm
|
|
// PAVGW xmm xmm
|
|
func PAVGW(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPAVGW.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PBLENDVB: Variable Blend Packed Bytes.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PBLENDVB xmm0 m128 xmm
|
|
// PBLENDVB xmm0 xmm xmm
|
|
func PBLENDVB(x, mx, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPBLENDVB.Forms(), sffxs{}, []operand.Op{x, mx, x1})
|
|
}
|
|
|
|
// PBLENDW: Blend Packed Words.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PBLENDW imm8 m128 xmm
|
|
// PBLENDW imm8 xmm xmm
|
|
func PBLENDW(i, mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPBLENDW.Forms(), sffxs{}, []operand.Op{i, mx, x})
|
|
}
|
|
|
|
// PCLMULQDQ: Carry-Less Quadword Multiplication.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PCLMULQDQ imm8 m128 xmm
|
|
// PCLMULQDQ imm8 xmm xmm
|
|
func PCLMULQDQ(i, mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPCLMULQDQ.Forms(), sffxs{}, []operand.Op{i, mx, x})
|
|
}
|
|
|
|
// PCMPEQB: Compare Packed Byte Data for Equality.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PCMPEQB m128 xmm
|
|
// PCMPEQB xmm xmm
|
|
func PCMPEQB(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPCMPEQB.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PCMPEQL: Compare Packed Doubleword Data for Equality.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PCMPEQL m128 xmm
|
|
// PCMPEQL xmm xmm
|
|
func PCMPEQL(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPCMPEQL.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PCMPEQQ: Compare Packed Quadword Data for Equality.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PCMPEQQ m128 xmm
|
|
// PCMPEQQ xmm xmm
|
|
func PCMPEQQ(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPCMPEQQ.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PCMPEQW: Compare Packed Word Data for Equality.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PCMPEQW m128 xmm
|
|
// PCMPEQW xmm xmm
|
|
func PCMPEQW(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPCMPEQW.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PCMPESTRI: Packed Compare Explicit Length Strings, Return Index.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PCMPESTRI imm8 m128 xmm
|
|
// PCMPESTRI imm8 xmm xmm
|
|
func PCMPESTRI(i, mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPCMPESTRI.Forms(), sffxs{}, []operand.Op{i, mx, x})
|
|
}
|
|
|
|
// PCMPESTRM: Packed Compare Explicit Length Strings, Return Mask.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PCMPESTRM imm8 m128 xmm
|
|
// PCMPESTRM imm8 xmm xmm
|
|
func PCMPESTRM(i, mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPCMPESTRM.Forms(), sffxs{}, []operand.Op{i, mx, x})
|
|
}
|
|
|
|
// PCMPGTB: Compare Packed Signed Byte Integers for Greater Than.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PCMPGTB m128 xmm
|
|
// PCMPGTB xmm xmm
|
|
func PCMPGTB(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPCMPGTB.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PCMPGTL: Compare Packed Signed Doubleword Integers for Greater Than.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PCMPGTL m128 xmm
|
|
// PCMPGTL xmm xmm
|
|
func PCMPGTL(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPCMPGTL.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PCMPGTQ: Compare Packed Data for Greater Than.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PCMPGTQ m128 xmm
|
|
// PCMPGTQ xmm xmm
|
|
func PCMPGTQ(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPCMPGTQ.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PCMPGTW: Compare Packed Signed Word Integers for Greater Than.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PCMPGTW m128 xmm
|
|
// PCMPGTW xmm xmm
|
|
func PCMPGTW(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPCMPGTW.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PCMPISTRI: Packed Compare Implicit Length Strings, Return Index.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PCMPISTRI imm8 m128 xmm
|
|
// PCMPISTRI imm8 xmm xmm
|
|
func PCMPISTRI(i, mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPCMPISTRI.Forms(), sffxs{}, []operand.Op{i, mx, x})
|
|
}
|
|
|
|
// PCMPISTRM: Packed Compare Implicit Length Strings, Return Mask.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PCMPISTRM imm8 m128 xmm
|
|
// PCMPISTRM imm8 xmm xmm
|
|
func PCMPISTRM(i, mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPCMPISTRM.Forms(), sffxs{}, []operand.Op{i, mx, x})
|
|
}
|
|
|
|
// PDEPL: Parallel Bits Deposit.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PDEPL m32 r32 r32
|
|
// PDEPL r32 r32 r32
|
|
func PDEPL(mr, r, r1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPDEPL.Forms(), sffxs{}, []operand.Op{mr, r, r1})
|
|
}
|
|
|
|
// PDEPQ: Parallel Bits Deposit.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PDEPQ m64 r64 r64
|
|
// PDEPQ r64 r64 r64
|
|
func PDEPQ(mr, r, r1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPDEPQ.Forms(), sffxs{}, []operand.Op{mr, r, r1})
|
|
}
|
|
|
|
// PEXTL: Parallel Bits Extract.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PEXTL m32 r32 r32
|
|
// PEXTL r32 r32 r32
|
|
func PEXTL(mr, r, r1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPEXTL.Forms(), sffxs{}, []operand.Op{mr, r, r1})
|
|
}
|
|
|
|
// PEXTQ: Parallel Bits Extract.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PEXTQ m64 r64 r64
|
|
// PEXTQ r64 r64 r64
|
|
func PEXTQ(mr, r, r1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPEXTQ.Forms(), sffxs{}, []operand.Op{mr, r, r1})
|
|
}
|
|
|
|
// PEXTRB: Extract Byte.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PEXTRB imm8 xmm m8
|
|
// PEXTRB imm8 xmm r32
|
|
func PEXTRB(i, x, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPEXTRB.Forms(), sffxs{}, []operand.Op{i, x, mr})
|
|
}
|
|
|
|
// PEXTRD: Extract Doubleword.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PEXTRD imm8 xmm m32
|
|
// PEXTRD imm8 xmm r32
|
|
func PEXTRD(i, x, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPEXTRD.Forms(), sffxs{}, []operand.Op{i, x, mr})
|
|
}
|
|
|
|
// PEXTRQ: Extract Quadword.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PEXTRQ imm8 xmm m64
|
|
// PEXTRQ imm8 xmm r64
|
|
func PEXTRQ(i, x, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPEXTRQ.Forms(), sffxs{}, []operand.Op{i, x, mr})
|
|
}
|
|
|
|
// PEXTRW: Extract Word.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PEXTRW imm8 xmm m16
|
|
// PEXTRW imm8 xmm r32
|
|
func PEXTRW(i, x, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPEXTRW.Forms(), sffxs{}, []operand.Op{i, x, mr})
|
|
}
|
|
|
|
// PHADDD: Packed Horizontal Add Doubleword Integer.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PHADDD m128 xmm
|
|
// PHADDD xmm xmm
|
|
func PHADDD(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPHADDD.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PHADDSW: Packed Horizontal Add Signed Word Integers with Signed Saturation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PHADDSW m128 xmm
|
|
// PHADDSW xmm xmm
|
|
func PHADDSW(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPHADDSW.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PHADDW: Packed Horizontal Add Word Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PHADDW m128 xmm
|
|
// PHADDW xmm xmm
|
|
func PHADDW(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPHADDW.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PHMINPOSUW: Packed Horizontal Minimum of Unsigned Word Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PHMINPOSUW m128 xmm
|
|
// PHMINPOSUW xmm xmm
|
|
func PHMINPOSUW(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPHMINPOSUW.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PHSUBD: Packed Horizontal Subtract Doubleword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PHSUBD m128 xmm
|
|
// PHSUBD xmm xmm
|
|
func PHSUBD(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPHSUBD.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PHSUBSW: Packed Horizontal Subtract Signed Word Integers with Signed Saturation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PHSUBSW m128 xmm
|
|
// PHSUBSW xmm xmm
|
|
func PHSUBSW(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPHSUBSW.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PHSUBW: Packed Horizontal Subtract Word Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PHSUBW m128 xmm
|
|
// PHSUBW xmm xmm
|
|
func PHSUBW(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPHSUBW.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PINSRB: Insert Byte.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PINSRB imm8 m8 xmm
|
|
// PINSRB imm8 r32 xmm
|
|
func PINSRB(i, mr, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPINSRB.Forms(), sffxs{}, []operand.Op{i, mr, x})
|
|
}
|
|
|
|
// PINSRD: Insert Doubleword.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PINSRD imm8 m32 xmm
|
|
// PINSRD imm8 r32 xmm
|
|
func PINSRD(i, mr, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPINSRD.Forms(), sffxs{}, []operand.Op{i, mr, x})
|
|
}
|
|
|
|
// PINSRQ: Insert Quadword.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PINSRQ imm8 m64 xmm
|
|
// PINSRQ imm8 r64 xmm
|
|
func PINSRQ(i, mr, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPINSRQ.Forms(), sffxs{}, []operand.Op{i, mr, x})
|
|
}
|
|
|
|
// PINSRW: Insert Word.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PINSRW imm8 m16 xmm
|
|
// PINSRW imm8 r32 xmm
|
|
func PINSRW(i, mr, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPINSRW.Forms(), sffxs{}, []operand.Op{i, mr, x})
|
|
}
|
|
|
|
// PMADDUBSW: Multiply and Add Packed Signed and Unsigned Byte Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PMADDUBSW m128 xmm
|
|
// PMADDUBSW xmm xmm
|
|
func PMADDUBSW(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPMADDUBSW.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PMADDWL: Multiply and Add Packed Signed Word Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PMADDWL m128 xmm
|
|
// PMADDWL xmm xmm
|
|
func PMADDWL(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPMADDWL.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PMAXSB: Maximum of Packed Signed Byte Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PMAXSB m128 xmm
|
|
// PMAXSB xmm xmm
|
|
func PMAXSB(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPMAXSB.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PMAXSD: Maximum of Packed Signed Doubleword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PMAXSD m128 xmm
|
|
// PMAXSD xmm xmm
|
|
func PMAXSD(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPMAXSD.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PMAXSW: Maximum of Packed Signed Word Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PMAXSW m128 xmm
|
|
// PMAXSW xmm xmm
|
|
func PMAXSW(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPMAXSW.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PMAXUB: Maximum of Packed Unsigned Byte Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PMAXUB m128 xmm
|
|
// PMAXUB xmm xmm
|
|
func PMAXUB(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPMAXUB.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PMAXUD: Maximum of Packed Unsigned Doubleword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PMAXUD m128 xmm
|
|
// PMAXUD xmm xmm
|
|
func PMAXUD(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPMAXUD.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PMAXUW: Maximum of Packed Unsigned Word Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PMAXUW m128 xmm
|
|
// PMAXUW xmm xmm
|
|
func PMAXUW(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPMAXUW.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PMINSB: Minimum of Packed Signed Byte Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PMINSB m128 xmm
|
|
// PMINSB xmm xmm
|
|
func PMINSB(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPMINSB.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PMINSD: Minimum of Packed Signed Doubleword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PMINSD m128 xmm
|
|
// PMINSD xmm xmm
|
|
func PMINSD(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPMINSD.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PMINSW: Minimum of Packed Signed Word Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PMINSW m128 xmm
|
|
// PMINSW xmm xmm
|
|
func PMINSW(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPMINSW.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PMINUB: Minimum of Packed Unsigned Byte Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PMINUB m128 xmm
|
|
// PMINUB xmm xmm
|
|
func PMINUB(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPMINUB.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PMINUD: Minimum of Packed Unsigned Doubleword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PMINUD m128 xmm
|
|
// PMINUD xmm xmm
|
|
func PMINUD(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPMINUD.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PMINUW: Minimum of Packed Unsigned Word Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PMINUW m128 xmm
|
|
// PMINUW xmm xmm
|
|
func PMINUW(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPMINUW.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PMOVMSKB: Move Byte Mask.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PMOVMSKB xmm r32
|
|
func PMOVMSKB(x, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPMOVMSKB.Forms(), sffxs{}, []operand.Op{x, r})
|
|
}
|
|
|
|
// PMOVSXBD: Move Packed Byte Integers to Doubleword Integers with Sign Extension.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PMOVSXBD m32 xmm
|
|
// PMOVSXBD xmm xmm
|
|
func PMOVSXBD(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPMOVSXBD.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PMOVSXBQ: Move Packed Byte Integers to Quadword Integers with Sign Extension.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PMOVSXBQ m16 xmm
|
|
// PMOVSXBQ xmm xmm
|
|
func PMOVSXBQ(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPMOVSXBQ.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PMOVSXBW: Move Packed Byte Integers to Word Integers with Sign Extension.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PMOVSXBW m64 xmm
|
|
// PMOVSXBW xmm xmm
|
|
func PMOVSXBW(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPMOVSXBW.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PMOVSXDQ: Move Packed Doubleword Integers to Quadword Integers with Sign Extension.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PMOVSXDQ m64 xmm
|
|
// PMOVSXDQ xmm xmm
|
|
func PMOVSXDQ(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPMOVSXDQ.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PMOVSXWD: Move Packed Word Integers to Doubleword Integers with Sign Extension.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PMOVSXWD m64 xmm
|
|
// PMOVSXWD xmm xmm
|
|
func PMOVSXWD(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPMOVSXWD.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PMOVSXWQ: Move Packed Word Integers to Quadword Integers with Sign Extension.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PMOVSXWQ m32 xmm
|
|
// PMOVSXWQ xmm xmm
|
|
func PMOVSXWQ(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPMOVSXWQ.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PMOVZXBD: Move Packed Byte Integers to Doubleword Integers with Zero Extension.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PMOVZXBD m32 xmm
|
|
// PMOVZXBD xmm xmm
|
|
func PMOVZXBD(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPMOVZXBD.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PMOVZXBQ: Move Packed Byte Integers to Quadword Integers with Zero Extension.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PMOVZXBQ m16 xmm
|
|
// PMOVZXBQ xmm xmm
|
|
func PMOVZXBQ(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPMOVZXBQ.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PMOVZXBW: Move Packed Byte Integers to Word Integers with Zero Extension.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PMOVZXBW m64 xmm
|
|
// PMOVZXBW xmm xmm
|
|
func PMOVZXBW(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPMOVZXBW.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PMOVZXDQ: Move Packed Doubleword Integers to Quadword Integers with Zero Extension.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PMOVZXDQ m64 xmm
|
|
// PMOVZXDQ xmm xmm
|
|
func PMOVZXDQ(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPMOVZXDQ.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PMOVZXWD: Move Packed Word Integers to Doubleword Integers with Zero Extension.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PMOVZXWD m64 xmm
|
|
// PMOVZXWD xmm xmm
|
|
func PMOVZXWD(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPMOVZXWD.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PMOVZXWQ: Move Packed Word Integers to Quadword Integers with Zero Extension.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PMOVZXWQ m32 xmm
|
|
// PMOVZXWQ xmm xmm
|
|
func PMOVZXWQ(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPMOVZXWQ.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PMULDQ: Multiply Packed Signed Doubleword Integers and Store Quadword Result.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PMULDQ m128 xmm
|
|
// PMULDQ xmm xmm
|
|
func PMULDQ(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPMULDQ.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PMULHRSW: Packed Multiply Signed Word Integers and Store High Result with Round and Scale.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PMULHRSW m128 xmm
|
|
// PMULHRSW xmm xmm
|
|
func PMULHRSW(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPMULHRSW.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PMULHUW: Multiply Packed Unsigned Word Integers and Store High Result.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PMULHUW m128 xmm
|
|
// PMULHUW xmm xmm
|
|
func PMULHUW(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPMULHUW.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PMULHW: Multiply Packed Signed Word Integers and Store High Result.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PMULHW m128 xmm
|
|
// PMULHW xmm xmm
|
|
func PMULHW(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPMULHW.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PMULLD: Multiply Packed Signed Doubleword Integers and Store Low Result.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PMULLD m128 xmm
|
|
// PMULLD xmm xmm
|
|
func PMULLD(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPMULLD.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PMULLW: Multiply Packed Signed Word Integers and Store Low Result.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PMULLW m128 xmm
|
|
// PMULLW xmm xmm
|
|
func PMULLW(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPMULLW.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PMULULQ: Multiply Packed Unsigned Doubleword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PMULULQ m128 xmm
|
|
// PMULULQ xmm xmm
|
|
func PMULULQ(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPMULULQ.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// POPCNTL: Count of Number of Bits Set to 1.
|
|
//
|
|
// Forms:
|
|
//
|
|
// POPCNTL m32 r32
|
|
// POPCNTL r32 r32
|
|
func POPCNTL(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPOPCNTL.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// POPCNTQ: Count of Number of Bits Set to 1.
|
|
//
|
|
// Forms:
|
|
//
|
|
// POPCNTQ m64 r64
|
|
// POPCNTQ r64 r64
|
|
func POPCNTQ(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPOPCNTQ.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// POPCNTW: Count of Number of Bits Set to 1.
|
|
//
|
|
// Forms:
|
|
//
|
|
// POPCNTW m16 r16
|
|
// POPCNTW r16 r16
|
|
func POPCNTW(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPOPCNTW.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// POPQ: Pop a Value from the Stack.
|
|
//
|
|
// Forms:
|
|
//
|
|
// POPQ m64
|
|
// POPQ r64
|
|
func POPQ(mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPOPQ.Forms(), sffxs{}, []operand.Op{mr})
|
|
}
|
|
|
|
// POPW: Pop a Value from the Stack.
|
|
//
|
|
// Forms:
|
|
//
|
|
// POPW m16
|
|
// POPW r16
|
|
func POPW(mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPOPW.Forms(), sffxs{}, []operand.Op{mr})
|
|
}
|
|
|
|
// POR: Packed Bitwise Logical OR.
|
|
//
|
|
// Forms:
|
|
//
|
|
// POR m128 xmm
|
|
// POR xmm xmm
|
|
func POR(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPOR.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PREFETCHNTA: Prefetch Data Into Caches using NTA Hint.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PREFETCHNTA m8
|
|
func PREFETCHNTA(m operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPREFETCHNTA.Forms(), sffxs{}, []operand.Op{m})
|
|
}
|
|
|
|
// PREFETCHT0: Prefetch Data Into Caches using T0 Hint.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PREFETCHT0 m8
|
|
func PREFETCHT0(m operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPREFETCHT0.Forms(), sffxs{}, []operand.Op{m})
|
|
}
|
|
|
|
// PREFETCHT1: Prefetch Data Into Caches using T1 Hint.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PREFETCHT1 m8
|
|
func PREFETCHT1(m operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPREFETCHT1.Forms(), sffxs{}, []operand.Op{m})
|
|
}
|
|
|
|
// PREFETCHT2: Prefetch Data Into Caches using T2 Hint.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PREFETCHT2 m8
|
|
func PREFETCHT2(m operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPREFETCHT2.Forms(), sffxs{}, []operand.Op{m})
|
|
}
|
|
|
|
// PSADBW: Compute Sum of Absolute Differences.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PSADBW m128 xmm
|
|
// PSADBW xmm xmm
|
|
func PSADBW(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPSADBW.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PSHUFB: Packed Shuffle Bytes.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PSHUFB m128 xmm
|
|
// PSHUFB xmm xmm
|
|
func PSHUFB(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPSHUFB.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PSHUFD: Shuffle Packed Doublewords.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PSHUFD imm8 m128 xmm
|
|
// PSHUFD imm8 xmm xmm
|
|
func PSHUFD(i, mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPSHUFD.Forms(), sffxs{}, []operand.Op{i, mx, x})
|
|
}
|
|
|
|
// PSHUFHW: Shuffle Packed High Words.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PSHUFHW imm8 m128 xmm
|
|
// PSHUFHW imm8 xmm xmm
|
|
func PSHUFHW(i, mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPSHUFHW.Forms(), sffxs{}, []operand.Op{i, mx, x})
|
|
}
|
|
|
|
// PSHUFL: Shuffle Packed Doublewords.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PSHUFL imm8 m128 xmm
|
|
// PSHUFL imm8 xmm xmm
|
|
func PSHUFL(i, mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPSHUFL.Forms(), sffxs{}, []operand.Op{i, mx, x})
|
|
}
|
|
|
|
// PSHUFLW: Shuffle Packed Low Words.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PSHUFLW imm8 m128 xmm
|
|
// PSHUFLW imm8 xmm xmm
|
|
func PSHUFLW(i, mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPSHUFLW.Forms(), sffxs{}, []operand.Op{i, mx, x})
|
|
}
|
|
|
|
// PSIGNB: Packed Sign of Byte Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PSIGNB m128 xmm
|
|
// PSIGNB xmm xmm
|
|
func PSIGNB(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPSIGNB.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PSIGND: Packed Sign of Doubleword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PSIGND m128 xmm
|
|
// PSIGND xmm xmm
|
|
func PSIGND(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPSIGND.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PSIGNW: Packed Sign of Word Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PSIGNW m128 xmm
|
|
// PSIGNW xmm xmm
|
|
func PSIGNW(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPSIGNW.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PSLLDQ: Shift Packed Double Quadword Left Logical.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PSLLDQ imm8 xmm
|
|
func PSLLDQ(i, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPSLLDQ.Forms(), sffxs{}, []operand.Op{i, x})
|
|
}
|
|
|
|
// PSLLL: Shift Packed Doubleword Data Left Logical.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PSLLL imm8 xmm
|
|
// PSLLL m128 xmm
|
|
// PSLLL xmm xmm
|
|
func PSLLL(imx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPSLLL.Forms(), sffxs{}, []operand.Op{imx, x})
|
|
}
|
|
|
|
// PSLLO: Shift Packed Double Quadword Left Logical.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PSLLO imm8 xmm
|
|
func PSLLO(i, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPSLLO.Forms(), sffxs{}, []operand.Op{i, x})
|
|
}
|
|
|
|
// PSLLQ: Shift Packed Quadword Data Left Logical.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PSLLQ imm8 xmm
|
|
// PSLLQ m128 xmm
|
|
// PSLLQ xmm xmm
|
|
func PSLLQ(imx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPSLLQ.Forms(), sffxs{}, []operand.Op{imx, x})
|
|
}
|
|
|
|
// PSLLW: Shift Packed Word Data Left Logical.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PSLLW imm8 xmm
|
|
// PSLLW m128 xmm
|
|
// PSLLW xmm xmm
|
|
func PSLLW(imx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPSLLW.Forms(), sffxs{}, []operand.Op{imx, x})
|
|
}
|
|
|
|
// PSRAL: Shift Packed Doubleword Data Right Arithmetic.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PSRAL imm8 xmm
|
|
// PSRAL m128 xmm
|
|
// PSRAL xmm xmm
|
|
func PSRAL(imx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPSRAL.Forms(), sffxs{}, []operand.Op{imx, x})
|
|
}
|
|
|
|
// PSRAW: Shift Packed Word Data Right Arithmetic.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PSRAW imm8 xmm
|
|
// PSRAW m128 xmm
|
|
// PSRAW xmm xmm
|
|
func PSRAW(imx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPSRAW.Forms(), sffxs{}, []operand.Op{imx, x})
|
|
}
|
|
|
|
// PSRLDQ: Shift Packed Double Quadword Right Logical.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PSRLDQ imm8 xmm
|
|
func PSRLDQ(i, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPSRLDQ.Forms(), sffxs{}, []operand.Op{i, x})
|
|
}
|
|
|
|
// PSRLL: Shift Packed Doubleword Data Right Logical.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PSRLL imm8 xmm
|
|
// PSRLL m128 xmm
|
|
// PSRLL xmm xmm
|
|
func PSRLL(imx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPSRLL.Forms(), sffxs{}, []operand.Op{imx, x})
|
|
}
|
|
|
|
// PSRLO: Shift Packed Double Quadword Right Logical.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PSRLO imm8 xmm
|
|
func PSRLO(i, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPSRLO.Forms(), sffxs{}, []operand.Op{i, x})
|
|
}
|
|
|
|
// PSRLQ: Shift Packed Quadword Data Right Logical.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PSRLQ imm8 xmm
|
|
// PSRLQ m128 xmm
|
|
// PSRLQ xmm xmm
|
|
func PSRLQ(imx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPSRLQ.Forms(), sffxs{}, []operand.Op{imx, x})
|
|
}
|
|
|
|
// PSRLW: Shift Packed Word Data Right Logical.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PSRLW imm8 xmm
|
|
// PSRLW m128 xmm
|
|
// PSRLW xmm xmm
|
|
func PSRLW(imx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPSRLW.Forms(), sffxs{}, []operand.Op{imx, x})
|
|
}
|
|
|
|
// PSUBB: Subtract Packed Byte Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PSUBB m128 xmm
|
|
// PSUBB xmm xmm
|
|
func PSUBB(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPSUBB.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PSUBL: Subtract Packed Doubleword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PSUBL m128 xmm
|
|
// PSUBL xmm xmm
|
|
func PSUBL(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPSUBL.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PSUBQ: Subtract Packed Quadword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PSUBQ m128 xmm
|
|
// PSUBQ xmm xmm
|
|
func PSUBQ(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPSUBQ.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PSUBSB: Subtract Packed Signed Byte Integers with Signed Saturation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PSUBSB m128 xmm
|
|
// PSUBSB xmm xmm
|
|
func PSUBSB(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPSUBSB.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PSUBSW: Subtract Packed Signed Word Integers with Signed Saturation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PSUBSW m128 xmm
|
|
// PSUBSW xmm xmm
|
|
func PSUBSW(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPSUBSW.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PSUBUSB: Subtract Packed Unsigned Byte Integers with Unsigned Saturation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PSUBUSB m128 xmm
|
|
// PSUBUSB xmm xmm
|
|
func PSUBUSB(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPSUBUSB.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PSUBUSW: Subtract Packed Unsigned Word Integers with Unsigned Saturation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PSUBUSW m128 xmm
|
|
// PSUBUSW xmm xmm
|
|
func PSUBUSW(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPSUBUSW.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PSUBW: Subtract Packed Word Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PSUBW m128 xmm
|
|
// PSUBW xmm xmm
|
|
func PSUBW(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPSUBW.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PTEST: Packed Logical Compare.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PTEST m128 xmm
|
|
// PTEST xmm xmm
|
|
func PTEST(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPTEST.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PUNPCKHBW: Unpack and Interleave High-Order Bytes into Words.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PUNPCKHBW m128 xmm
|
|
// PUNPCKHBW xmm xmm
|
|
func PUNPCKHBW(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPUNPCKHBW.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PUNPCKHLQ: Unpack and Interleave High-Order Doublewords into Quadwords.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PUNPCKHLQ m128 xmm
|
|
// PUNPCKHLQ xmm xmm
|
|
func PUNPCKHLQ(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPUNPCKHLQ.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PUNPCKHQDQ: Unpack and Interleave High-Order Quadwords into Double Quadwords.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PUNPCKHQDQ m128 xmm
|
|
// PUNPCKHQDQ xmm xmm
|
|
func PUNPCKHQDQ(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPUNPCKHQDQ.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PUNPCKHWL: Unpack and Interleave High-Order Words into Doublewords.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PUNPCKHWL m128 xmm
|
|
// PUNPCKHWL xmm xmm
|
|
func PUNPCKHWL(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPUNPCKHWL.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PUNPCKLBW: Unpack and Interleave Low-Order Bytes into Words.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PUNPCKLBW m128 xmm
|
|
// PUNPCKLBW xmm xmm
|
|
func PUNPCKLBW(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPUNPCKLBW.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PUNPCKLLQ: Unpack and Interleave Low-Order Doublewords into Quadwords.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PUNPCKLLQ m128 xmm
|
|
// PUNPCKLLQ xmm xmm
|
|
func PUNPCKLLQ(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPUNPCKLLQ.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PUNPCKLQDQ: Unpack and Interleave Low-Order Quadwords into Double Quadwords.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PUNPCKLQDQ m128 xmm
|
|
// PUNPCKLQDQ xmm xmm
|
|
func PUNPCKLQDQ(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPUNPCKLQDQ.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PUNPCKLWL: Unpack and Interleave Low-Order Words into Doublewords.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PUNPCKLWL m128 xmm
|
|
// PUNPCKLWL xmm xmm
|
|
func PUNPCKLWL(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPUNPCKLWL.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// PUSHQ: Push Value Onto the Stack.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PUSHQ imm32
|
|
// PUSHQ imm8
|
|
// PUSHQ m64
|
|
// PUSHQ r64
|
|
func PUSHQ(imr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPUSHQ.Forms(), sffxs{}, []operand.Op{imr})
|
|
}
|
|
|
|
// PUSHW: Push Value Onto the Stack.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PUSHW m16
|
|
// PUSHW r16
|
|
func PUSHW(mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPUSHW.Forms(), sffxs{}, []operand.Op{mr})
|
|
}
|
|
|
|
// PXOR: Packed Bitwise Logical Exclusive OR.
|
|
//
|
|
// Forms:
|
|
//
|
|
// PXOR m128 xmm
|
|
// PXOR xmm xmm
|
|
func PXOR(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcPXOR.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// RCLB: Rotate Left through Carry Flag.
|
|
//
|
|
// Forms:
|
|
//
|
|
// RCLB 1 m8
|
|
// RCLB 1 r8
|
|
// RCLB cl m8
|
|
// RCLB cl r8
|
|
// RCLB imm8 m8
|
|
// RCLB imm8 r8
|
|
func RCLB(ci, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcRCLB.Forms(), sffxs{}, []operand.Op{ci, mr})
|
|
}
|
|
|
|
// RCLL: Rotate Left through Carry Flag.
|
|
//
|
|
// Forms:
|
|
//
|
|
// RCLL 1 m32
|
|
// RCLL 1 r32
|
|
// RCLL cl m32
|
|
// RCLL cl r32
|
|
// RCLL imm8 m32
|
|
// RCLL imm8 r32
|
|
func RCLL(ci, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcRCLL.Forms(), sffxs{}, []operand.Op{ci, mr})
|
|
}
|
|
|
|
// RCLQ: Rotate Left through Carry Flag.
|
|
//
|
|
// Forms:
|
|
//
|
|
// RCLQ 1 m64
|
|
// RCLQ 1 r64
|
|
// RCLQ cl m64
|
|
// RCLQ cl r64
|
|
// RCLQ imm8 m64
|
|
// RCLQ imm8 r64
|
|
func RCLQ(ci, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcRCLQ.Forms(), sffxs{}, []operand.Op{ci, mr})
|
|
}
|
|
|
|
// RCLW: Rotate Left through Carry Flag.
|
|
//
|
|
// Forms:
|
|
//
|
|
// RCLW 1 m16
|
|
// RCLW 1 r16
|
|
// RCLW cl m16
|
|
// RCLW cl r16
|
|
// RCLW imm8 m16
|
|
// RCLW imm8 r16
|
|
func RCLW(ci, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcRCLW.Forms(), sffxs{}, []operand.Op{ci, mr})
|
|
}
|
|
|
|
// RCPPS: Compute Approximate Reciprocals of Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// RCPPS m128 xmm
|
|
// RCPPS xmm xmm
|
|
func RCPPS(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcRCPPS.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// RCPSS: Compute Approximate Reciprocal of Scalar Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// RCPSS m32 xmm
|
|
// RCPSS xmm xmm
|
|
func RCPSS(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcRCPSS.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// RCRB: Rotate Right through Carry Flag.
|
|
//
|
|
// Forms:
|
|
//
|
|
// RCRB 1 m8
|
|
// RCRB 1 r8
|
|
// RCRB cl m8
|
|
// RCRB cl r8
|
|
// RCRB imm8 m8
|
|
// RCRB imm8 r8
|
|
func RCRB(ci, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcRCRB.Forms(), sffxs{}, []operand.Op{ci, mr})
|
|
}
|
|
|
|
// RCRL: Rotate Right through Carry Flag.
|
|
//
|
|
// Forms:
|
|
//
|
|
// RCRL 1 m32
|
|
// RCRL 1 r32
|
|
// RCRL cl m32
|
|
// RCRL cl r32
|
|
// RCRL imm8 m32
|
|
// RCRL imm8 r32
|
|
func RCRL(ci, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcRCRL.Forms(), sffxs{}, []operand.Op{ci, mr})
|
|
}
|
|
|
|
// RCRQ: Rotate Right through Carry Flag.
|
|
//
|
|
// Forms:
|
|
//
|
|
// RCRQ 1 m64
|
|
// RCRQ 1 r64
|
|
// RCRQ cl m64
|
|
// RCRQ cl r64
|
|
// RCRQ imm8 m64
|
|
// RCRQ imm8 r64
|
|
func RCRQ(ci, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcRCRQ.Forms(), sffxs{}, []operand.Op{ci, mr})
|
|
}
|
|
|
|
// RCRW: Rotate Right through Carry Flag.
|
|
//
|
|
// Forms:
|
|
//
|
|
// RCRW 1 m16
|
|
// RCRW 1 r16
|
|
// RCRW cl m16
|
|
// RCRW cl r16
|
|
// RCRW imm8 m16
|
|
// RCRW imm8 r16
|
|
func RCRW(ci, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcRCRW.Forms(), sffxs{}, []operand.Op{ci, mr})
|
|
}
|
|
|
|
// RDRANDL: Read Random Number.
|
|
//
|
|
// Forms:
|
|
//
|
|
// RDRANDL r16
|
|
// RDRANDL r32
|
|
// RDRANDL r64
|
|
func RDRANDL(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcRDRANDL.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// RDSEEDL: Read Random SEED.
|
|
//
|
|
// Forms:
|
|
//
|
|
// RDSEEDL r16
|
|
// RDSEEDL r32
|
|
// RDSEEDL r64
|
|
func RDSEEDL(r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcRDSEEDL.Forms(), sffxs{}, []operand.Op{r})
|
|
}
|
|
|
|
// RDTSC: Read Time-Stamp Counter.
|
|
//
|
|
// Forms:
|
|
//
|
|
// RDTSC
|
|
func RDTSC() (*intrep.Instruction, error) {
|
|
return build(opcRDTSC.Forms(), sffxs{}, []operand.Op{})
|
|
}
|
|
|
|
// RDTSCP: Read Time-Stamp Counter and Processor ID.
|
|
//
|
|
// Forms:
|
|
//
|
|
// RDTSCP
|
|
func RDTSCP() (*intrep.Instruction, error) {
|
|
return build(opcRDTSCP.Forms(), sffxs{}, []operand.Op{})
|
|
}
|
|
|
|
// RET: Return from Procedure.
|
|
//
|
|
// Forms:
|
|
//
|
|
// RET
|
|
func RET() (*intrep.Instruction, error) {
|
|
return build(opcRET.Forms(), sffxs{}, []operand.Op{})
|
|
}
|
|
|
|
// RETFL: Return from Procedure.
|
|
//
|
|
// Forms:
|
|
//
|
|
// RETFL imm16
|
|
func RETFL(i operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcRETFL.Forms(), sffxs{}, []operand.Op{i})
|
|
}
|
|
|
|
// RETFQ: Return from Procedure.
|
|
//
|
|
// Forms:
|
|
//
|
|
// RETFQ imm16
|
|
func RETFQ(i operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcRETFQ.Forms(), sffxs{}, []operand.Op{i})
|
|
}
|
|
|
|
// RETFW: Return from Procedure.
|
|
//
|
|
// Forms:
|
|
//
|
|
// RETFW imm16
|
|
func RETFW(i operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcRETFW.Forms(), sffxs{}, []operand.Op{i})
|
|
}
|
|
|
|
// ROLB: Rotate Left.
|
|
//
|
|
// Forms:
|
|
//
|
|
// ROLB 1 m8
|
|
// ROLB 1 r8
|
|
// ROLB cl m8
|
|
// ROLB cl r8
|
|
// ROLB imm8 m8
|
|
// ROLB imm8 r8
|
|
func ROLB(ci, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcROLB.Forms(), sffxs{}, []operand.Op{ci, mr})
|
|
}
|
|
|
|
// ROLL: Rotate Left.
|
|
//
|
|
// Forms:
|
|
//
|
|
// ROLL 1 m32
|
|
// ROLL 1 r32
|
|
// ROLL cl m32
|
|
// ROLL cl r32
|
|
// ROLL imm8 m32
|
|
// ROLL imm8 r32
|
|
func ROLL(ci, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcROLL.Forms(), sffxs{}, []operand.Op{ci, mr})
|
|
}
|
|
|
|
// ROLQ: Rotate Left.
|
|
//
|
|
// Forms:
|
|
//
|
|
// ROLQ 1 m64
|
|
// ROLQ 1 r64
|
|
// ROLQ cl m64
|
|
// ROLQ cl r64
|
|
// ROLQ imm8 m64
|
|
// ROLQ imm8 r64
|
|
func ROLQ(ci, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcROLQ.Forms(), sffxs{}, []operand.Op{ci, mr})
|
|
}
|
|
|
|
// ROLW: Rotate Left.
|
|
//
|
|
// Forms:
|
|
//
|
|
// ROLW 1 m16
|
|
// ROLW 1 r16
|
|
// ROLW cl m16
|
|
// ROLW cl r16
|
|
// ROLW imm8 m16
|
|
// ROLW imm8 r16
|
|
func ROLW(ci, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcROLW.Forms(), sffxs{}, []operand.Op{ci, mr})
|
|
}
|
|
|
|
// RORB: Rotate Right.
|
|
//
|
|
// Forms:
|
|
//
|
|
// RORB 1 m8
|
|
// RORB 1 r8
|
|
// RORB cl m8
|
|
// RORB cl r8
|
|
// RORB imm8 m8
|
|
// RORB imm8 r8
|
|
func RORB(ci, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcRORB.Forms(), sffxs{}, []operand.Op{ci, mr})
|
|
}
|
|
|
|
// RORL: Rotate Right.
|
|
//
|
|
// Forms:
|
|
//
|
|
// RORL 1 m32
|
|
// RORL 1 r32
|
|
// RORL cl m32
|
|
// RORL cl r32
|
|
// RORL imm8 m32
|
|
// RORL imm8 r32
|
|
func RORL(ci, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcRORL.Forms(), sffxs{}, []operand.Op{ci, mr})
|
|
}
|
|
|
|
// RORQ: Rotate Right.
|
|
//
|
|
// Forms:
|
|
//
|
|
// RORQ 1 m64
|
|
// RORQ 1 r64
|
|
// RORQ cl m64
|
|
// RORQ cl r64
|
|
// RORQ imm8 m64
|
|
// RORQ imm8 r64
|
|
func RORQ(ci, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcRORQ.Forms(), sffxs{}, []operand.Op{ci, mr})
|
|
}
|
|
|
|
// RORW: Rotate Right.
|
|
//
|
|
// Forms:
|
|
//
|
|
// RORW 1 m16
|
|
// RORW 1 r16
|
|
// RORW cl m16
|
|
// RORW cl r16
|
|
// RORW imm8 m16
|
|
// RORW imm8 r16
|
|
func RORW(ci, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcRORW.Forms(), sffxs{}, []operand.Op{ci, mr})
|
|
}
|
|
|
|
// RORXL: Rotate Right Logical Without Affecting Flags.
|
|
//
|
|
// Forms:
|
|
//
|
|
// RORXL imm8 m32 r32
|
|
// RORXL imm8 r32 r32
|
|
func RORXL(i, mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcRORXL.Forms(), sffxs{}, []operand.Op{i, mr, r})
|
|
}
|
|
|
|
// RORXQ: Rotate Right Logical Without Affecting Flags.
|
|
//
|
|
// Forms:
|
|
//
|
|
// RORXQ imm8 m64 r64
|
|
// RORXQ imm8 r64 r64
|
|
func RORXQ(i, mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcRORXQ.Forms(), sffxs{}, []operand.Op{i, mr, r})
|
|
}
|
|
|
|
// ROUNDPD: Round Packed Double Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// ROUNDPD imm8 m128 xmm
|
|
// ROUNDPD imm8 xmm xmm
|
|
func ROUNDPD(i, mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcROUNDPD.Forms(), sffxs{}, []operand.Op{i, mx, x})
|
|
}
|
|
|
|
// ROUNDPS: Round Packed Single Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// ROUNDPS imm8 m128 xmm
|
|
// ROUNDPS imm8 xmm xmm
|
|
func ROUNDPS(i, mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcROUNDPS.Forms(), sffxs{}, []operand.Op{i, mx, x})
|
|
}
|
|
|
|
// ROUNDSD: Round Scalar Double Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// ROUNDSD imm8 m64 xmm
|
|
// ROUNDSD imm8 xmm xmm
|
|
func ROUNDSD(i, mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcROUNDSD.Forms(), sffxs{}, []operand.Op{i, mx, x})
|
|
}
|
|
|
|
// ROUNDSS: Round Scalar Single Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// ROUNDSS imm8 m32 xmm
|
|
// ROUNDSS imm8 xmm xmm
|
|
func ROUNDSS(i, mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcROUNDSS.Forms(), sffxs{}, []operand.Op{i, mx, x})
|
|
}
|
|
|
|
// RSQRTPS: Compute Reciprocals of Square Roots of Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// RSQRTPS m128 xmm
|
|
// RSQRTPS xmm xmm
|
|
func RSQRTPS(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcRSQRTPS.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// RSQRTSS: Compute Reciprocal of Square Root of Scalar Single-Precision Floating-Point Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// RSQRTSS m32 xmm
|
|
// RSQRTSS xmm xmm
|
|
func RSQRTSS(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcRSQRTSS.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// SALB: Arithmetic Shift Left.
|
|
//
|
|
// Forms:
|
|
//
|
|
// SALB 1 m8
|
|
// SALB 1 r8
|
|
// SALB cl m8
|
|
// SALB cl r8
|
|
// SALB imm8 m8
|
|
// SALB imm8 r8
|
|
func SALB(ci, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSALB.Forms(), sffxs{}, []operand.Op{ci, mr})
|
|
}
|
|
|
|
// SALL: Arithmetic Shift Left.
|
|
//
|
|
// Forms:
|
|
//
|
|
// SALL 1 m32
|
|
// SALL 1 r32
|
|
// SALL cl m32
|
|
// SALL cl r32
|
|
// SALL imm8 m32
|
|
// SALL imm8 r32
|
|
func SALL(ci, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSALL.Forms(), sffxs{}, []operand.Op{ci, mr})
|
|
}
|
|
|
|
// SALQ: Arithmetic Shift Left.
|
|
//
|
|
// Forms:
|
|
//
|
|
// SALQ 1 m64
|
|
// SALQ 1 r64
|
|
// SALQ cl m64
|
|
// SALQ cl r64
|
|
// SALQ imm8 m64
|
|
// SALQ imm8 r64
|
|
func SALQ(ci, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSALQ.Forms(), sffxs{}, []operand.Op{ci, mr})
|
|
}
|
|
|
|
// SALW: Arithmetic Shift Left.
|
|
//
|
|
// Forms:
|
|
//
|
|
// SALW 1 m16
|
|
// SALW 1 r16
|
|
// SALW cl m16
|
|
// SALW cl r16
|
|
// SALW imm8 m16
|
|
// SALW imm8 r16
|
|
func SALW(ci, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSALW.Forms(), sffxs{}, []operand.Op{ci, mr})
|
|
}
|
|
|
|
// SARB: Arithmetic Shift Right.
|
|
//
|
|
// Forms:
|
|
//
|
|
// SARB 1 m8
|
|
// SARB 1 r8
|
|
// SARB cl m8
|
|
// SARB cl r8
|
|
// SARB imm8 m8
|
|
// SARB imm8 r8
|
|
func SARB(ci, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSARB.Forms(), sffxs{}, []operand.Op{ci, mr})
|
|
}
|
|
|
|
// SARL: Arithmetic Shift Right.
|
|
//
|
|
// Forms:
|
|
//
|
|
// SARL 1 m32
|
|
// SARL 1 r32
|
|
// SARL cl m32
|
|
// SARL cl r32
|
|
// SARL imm8 m32
|
|
// SARL imm8 r32
|
|
func SARL(ci, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSARL.Forms(), sffxs{}, []operand.Op{ci, mr})
|
|
}
|
|
|
|
// SARQ: Arithmetic Shift Right.
|
|
//
|
|
// Forms:
|
|
//
|
|
// SARQ 1 m64
|
|
// SARQ 1 r64
|
|
// SARQ cl m64
|
|
// SARQ cl r64
|
|
// SARQ imm8 m64
|
|
// SARQ imm8 r64
|
|
func SARQ(ci, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSARQ.Forms(), sffxs{}, []operand.Op{ci, mr})
|
|
}
|
|
|
|
// SARW: Arithmetic Shift Right.
|
|
//
|
|
// Forms:
|
|
//
|
|
// SARW 1 m16
|
|
// SARW 1 r16
|
|
// SARW cl m16
|
|
// SARW cl r16
|
|
// SARW imm8 m16
|
|
// SARW imm8 r16
|
|
func SARW(ci, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSARW.Forms(), sffxs{}, []operand.Op{ci, mr})
|
|
}
|
|
|
|
// SARXL: Arithmetic Shift Right Without Affecting Flags.
|
|
//
|
|
// Forms:
|
|
//
|
|
// SARXL r32 m32 r32
|
|
// SARXL r32 r32 r32
|
|
func SARXL(r, mr, r1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSARXL.Forms(), sffxs{}, []operand.Op{r, mr, r1})
|
|
}
|
|
|
|
// SARXQ: Arithmetic Shift Right Without Affecting Flags.
|
|
//
|
|
// Forms:
|
|
//
|
|
// SARXQ r64 m64 r64
|
|
// SARXQ r64 r64 r64
|
|
func SARXQ(r, mr, r1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSARXQ.Forms(), sffxs{}, []operand.Op{r, mr, r1})
|
|
}
|
|
|
|
// SBBB: Subtract with Borrow.
|
|
//
|
|
// Forms:
|
|
//
|
|
// SBBB imm8 al
|
|
// SBBB imm8 m8
|
|
// SBBB imm8 r8
|
|
// SBBB m8 r8
|
|
// SBBB r8 m8
|
|
// SBBB r8 r8
|
|
func SBBB(imr, amr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSBBB.Forms(), sffxs{}, []operand.Op{imr, amr})
|
|
}
|
|
|
|
// SBBL: Subtract with Borrow.
|
|
//
|
|
// Forms:
|
|
//
|
|
// SBBL imm32 eax
|
|
// SBBL imm32 m32
|
|
// SBBL imm32 r32
|
|
// SBBL imm8 m32
|
|
// SBBL imm8 r32
|
|
// SBBL m32 r32
|
|
// SBBL r32 m32
|
|
// SBBL r32 r32
|
|
func SBBL(imr, emr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSBBL.Forms(), sffxs{}, []operand.Op{imr, emr})
|
|
}
|
|
|
|
// SBBQ: Subtract with Borrow.
|
|
//
|
|
// Forms:
|
|
//
|
|
// SBBQ imm32 m64
|
|
// SBBQ imm32 r64
|
|
// SBBQ imm32 rax
|
|
// SBBQ imm8 m64
|
|
// SBBQ imm8 r64
|
|
// SBBQ m64 r64
|
|
// SBBQ r64 m64
|
|
// SBBQ r64 r64
|
|
func SBBQ(imr, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSBBQ.Forms(), sffxs{}, []operand.Op{imr, mr})
|
|
}
|
|
|
|
// SBBW: Subtract with Borrow.
|
|
//
|
|
// Forms:
|
|
//
|
|
// SBBW imm16 ax
|
|
// SBBW imm16 m16
|
|
// SBBW imm16 r16
|
|
// SBBW imm8 m16
|
|
// SBBW imm8 r16
|
|
// SBBW m16 r16
|
|
// SBBW r16 m16
|
|
// SBBW r16 r16
|
|
func SBBW(imr, amr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSBBW.Forms(), sffxs{}, []operand.Op{imr, amr})
|
|
}
|
|
|
|
// SETCC: Set byte if above or equal (CF == 0).
|
|
//
|
|
// Forms:
|
|
//
|
|
// SETCC m8
|
|
// SETCC r8
|
|
func SETCC(mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSETCC.Forms(), sffxs{}, []operand.Op{mr})
|
|
}
|
|
|
|
// SETCS: Set byte if below (CF == 1).
|
|
//
|
|
// Forms:
|
|
//
|
|
// SETCS m8
|
|
// SETCS r8
|
|
func SETCS(mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSETCS.Forms(), sffxs{}, []operand.Op{mr})
|
|
}
|
|
|
|
// SETEQ: Set byte if equal (ZF == 1).
|
|
//
|
|
// Forms:
|
|
//
|
|
// SETEQ m8
|
|
// SETEQ r8
|
|
func SETEQ(mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSETEQ.Forms(), sffxs{}, []operand.Op{mr})
|
|
}
|
|
|
|
// SETGE: Set byte if greater or equal (SF == OF).
|
|
//
|
|
// Forms:
|
|
//
|
|
// SETGE m8
|
|
// SETGE r8
|
|
func SETGE(mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSETGE.Forms(), sffxs{}, []operand.Op{mr})
|
|
}
|
|
|
|
// SETGT: Set byte if greater (ZF == 0 and SF == OF).
|
|
//
|
|
// Forms:
|
|
//
|
|
// SETGT m8
|
|
// SETGT r8
|
|
func SETGT(mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSETGT.Forms(), sffxs{}, []operand.Op{mr})
|
|
}
|
|
|
|
// SETHI: Set byte if above (CF == 0 and ZF == 0).
|
|
//
|
|
// Forms:
|
|
//
|
|
// SETHI m8
|
|
// SETHI r8
|
|
func SETHI(mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSETHI.Forms(), sffxs{}, []operand.Op{mr})
|
|
}
|
|
|
|
// SETLE: Set byte if less or equal (ZF == 1 or SF != OF).
|
|
//
|
|
// Forms:
|
|
//
|
|
// SETLE m8
|
|
// SETLE r8
|
|
func SETLE(mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSETLE.Forms(), sffxs{}, []operand.Op{mr})
|
|
}
|
|
|
|
// SETLS: Set byte if below or equal (CF == 1 or ZF == 1).
|
|
//
|
|
// Forms:
|
|
//
|
|
// SETLS m8
|
|
// SETLS r8
|
|
func SETLS(mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSETLS.Forms(), sffxs{}, []operand.Op{mr})
|
|
}
|
|
|
|
// SETLT: Set byte if less (SF != OF).
|
|
//
|
|
// Forms:
|
|
//
|
|
// SETLT m8
|
|
// SETLT r8
|
|
func SETLT(mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSETLT.Forms(), sffxs{}, []operand.Op{mr})
|
|
}
|
|
|
|
// SETMI: Set byte if sign (SF == 1).
|
|
//
|
|
// Forms:
|
|
//
|
|
// SETMI m8
|
|
// SETMI r8
|
|
func SETMI(mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSETMI.Forms(), sffxs{}, []operand.Op{mr})
|
|
}
|
|
|
|
// SETNE: Set byte if not equal (ZF == 0).
|
|
//
|
|
// Forms:
|
|
//
|
|
// SETNE m8
|
|
// SETNE r8
|
|
func SETNE(mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSETNE.Forms(), sffxs{}, []operand.Op{mr})
|
|
}
|
|
|
|
// SETOC: Set byte if not overflow (OF == 0).
|
|
//
|
|
// Forms:
|
|
//
|
|
// SETOC m8
|
|
// SETOC r8
|
|
func SETOC(mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSETOC.Forms(), sffxs{}, []operand.Op{mr})
|
|
}
|
|
|
|
// SETOS: Set byte if overflow (OF == 1).
|
|
//
|
|
// Forms:
|
|
//
|
|
// SETOS m8
|
|
// SETOS r8
|
|
func SETOS(mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSETOS.Forms(), sffxs{}, []operand.Op{mr})
|
|
}
|
|
|
|
// SETPC: Set byte if not parity (PF == 0).
|
|
//
|
|
// Forms:
|
|
//
|
|
// SETPC m8
|
|
// SETPC r8
|
|
func SETPC(mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSETPC.Forms(), sffxs{}, []operand.Op{mr})
|
|
}
|
|
|
|
// SETPL: Set byte if not sign (SF == 0).
|
|
//
|
|
// Forms:
|
|
//
|
|
// SETPL m8
|
|
// SETPL r8
|
|
func SETPL(mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSETPL.Forms(), sffxs{}, []operand.Op{mr})
|
|
}
|
|
|
|
// SETPS: Set byte if parity (PF == 1).
|
|
//
|
|
// Forms:
|
|
//
|
|
// SETPS m8
|
|
// SETPS r8
|
|
func SETPS(mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSETPS.Forms(), sffxs{}, []operand.Op{mr})
|
|
}
|
|
|
|
// SFENCE: Store Fence.
|
|
//
|
|
// Forms:
|
|
//
|
|
// SFENCE
|
|
func SFENCE() (*intrep.Instruction, error) {
|
|
return build(opcSFENCE.Forms(), sffxs{}, []operand.Op{})
|
|
}
|
|
|
|
// SHA1MSG1: Perform an Intermediate Calculation for the Next Four SHA1 Message Doublewords.
|
|
//
|
|
// Forms:
|
|
//
|
|
// SHA1MSG1 m128 xmm
|
|
// SHA1MSG1 xmm xmm
|
|
func SHA1MSG1(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSHA1MSG1.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// SHA1MSG2: Perform a Final Calculation for the Next Four SHA1 Message Doublewords.
|
|
//
|
|
// Forms:
|
|
//
|
|
// SHA1MSG2 m128 xmm
|
|
// SHA1MSG2 xmm xmm
|
|
func SHA1MSG2(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSHA1MSG2.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// SHA1NEXTE: Calculate SHA1 State Variable E after Four Rounds.
|
|
//
|
|
// Forms:
|
|
//
|
|
// SHA1NEXTE m128 xmm
|
|
// SHA1NEXTE xmm xmm
|
|
func SHA1NEXTE(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSHA1NEXTE.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// SHA1RNDS4: Perform Four Rounds of SHA1 Operation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// SHA1RNDS4 imm2u m128 xmm
|
|
// SHA1RNDS4 imm2u xmm xmm
|
|
func SHA1RNDS4(i, mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSHA1RNDS4.Forms(), sffxs{}, []operand.Op{i, mx, x})
|
|
}
|
|
|
|
// SHA256MSG1: Perform an Intermediate Calculation for the Next Four SHA256 Message Doublewords.
|
|
//
|
|
// Forms:
|
|
//
|
|
// SHA256MSG1 m128 xmm
|
|
// SHA256MSG1 xmm xmm
|
|
func SHA256MSG1(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSHA256MSG1.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// SHA256MSG2: Perform a Final Calculation for the Next Four SHA256 Message Doublewords.
|
|
//
|
|
// Forms:
|
|
//
|
|
// SHA256MSG2 m128 xmm
|
|
// SHA256MSG2 xmm xmm
|
|
func SHA256MSG2(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSHA256MSG2.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// SHA256RNDS2: Perform Two Rounds of SHA256 Operation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// SHA256RNDS2 xmm0 m128 xmm
|
|
// SHA256RNDS2 xmm0 xmm xmm
|
|
func SHA256RNDS2(x, mx, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSHA256RNDS2.Forms(), sffxs{}, []operand.Op{x, mx, x1})
|
|
}
|
|
|
|
// SHLB: Logical Shift Left.
|
|
//
|
|
// Forms:
|
|
//
|
|
// SHLB 1 m8
|
|
// SHLB 1 r8
|
|
// SHLB cl m8
|
|
// SHLB cl r8
|
|
// SHLB imm8 m8
|
|
// SHLB imm8 r8
|
|
func SHLB(ci, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSHLB.Forms(), sffxs{}, []operand.Op{ci, mr})
|
|
}
|
|
|
|
// SHLL: Logical Shift Left.
|
|
//
|
|
// Forms:
|
|
//
|
|
// SHLL 1 m32
|
|
// SHLL 1 r32
|
|
// SHLL cl m32
|
|
// SHLL cl r32
|
|
// SHLL cl r32 m32
|
|
// SHLL cl r32 r32
|
|
// SHLL imm8 m32
|
|
// SHLL imm8 r32
|
|
// SHLL imm8 r32 m32
|
|
// SHLL imm8 r32 r32
|
|
func SHLL(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSHLL.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// SHLQ: Logical Shift Left.
|
|
//
|
|
// Forms:
|
|
//
|
|
// SHLQ 1 m64
|
|
// SHLQ 1 r64
|
|
// SHLQ cl m64
|
|
// SHLQ cl r64
|
|
// SHLQ cl r64 m64
|
|
// SHLQ cl r64 r64
|
|
// SHLQ imm8 m64
|
|
// SHLQ imm8 r64
|
|
// SHLQ imm8 r64 m64
|
|
// SHLQ imm8 r64 r64
|
|
func SHLQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSHLQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// SHLW: Logical Shift Left.
|
|
//
|
|
// Forms:
|
|
//
|
|
// SHLW 1 m16
|
|
// SHLW 1 r16
|
|
// SHLW cl m16
|
|
// SHLW cl r16
|
|
// SHLW cl r16 m16
|
|
// SHLW cl r16 r16
|
|
// SHLW imm8 m16
|
|
// SHLW imm8 r16
|
|
// SHLW imm8 r16 m16
|
|
// SHLW imm8 r16 r16
|
|
func SHLW(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSHLW.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// SHLXL: Logical Shift Left Without Affecting Flags.
|
|
//
|
|
// Forms:
|
|
//
|
|
// SHLXL r32 m32 r32
|
|
// SHLXL r32 r32 r32
|
|
func SHLXL(r, mr, r1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSHLXL.Forms(), sffxs{}, []operand.Op{r, mr, r1})
|
|
}
|
|
|
|
// SHLXQ: Logical Shift Left Without Affecting Flags.
|
|
//
|
|
// Forms:
|
|
//
|
|
// SHLXQ r64 m64 r64
|
|
// SHLXQ r64 r64 r64
|
|
func SHLXQ(r, mr, r1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSHLXQ.Forms(), sffxs{}, []operand.Op{r, mr, r1})
|
|
}
|
|
|
|
// SHRB: Logical Shift Right.
|
|
//
|
|
// Forms:
|
|
//
|
|
// SHRB 1 m8
|
|
// SHRB 1 r8
|
|
// SHRB cl m8
|
|
// SHRB cl r8
|
|
// SHRB imm8 m8
|
|
// SHRB imm8 r8
|
|
func SHRB(ci, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSHRB.Forms(), sffxs{}, []operand.Op{ci, mr})
|
|
}
|
|
|
|
// SHRL: Logical Shift Right.
|
|
//
|
|
// Forms:
|
|
//
|
|
// SHRL 1 m32
|
|
// SHRL 1 r32
|
|
// SHRL cl m32
|
|
// SHRL cl r32
|
|
// SHRL cl r32 m32
|
|
// SHRL cl r32 r32
|
|
// SHRL imm8 m32
|
|
// SHRL imm8 r32
|
|
// SHRL imm8 r32 m32
|
|
// SHRL imm8 r32 r32
|
|
func SHRL(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSHRL.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// SHRQ: Logical Shift Right.
|
|
//
|
|
// Forms:
|
|
//
|
|
// SHRQ 1 m64
|
|
// SHRQ 1 r64
|
|
// SHRQ cl m64
|
|
// SHRQ cl r64
|
|
// SHRQ cl r64 m64
|
|
// SHRQ cl r64 r64
|
|
// SHRQ imm8 m64
|
|
// SHRQ imm8 r64
|
|
// SHRQ imm8 r64 m64
|
|
// SHRQ imm8 r64 r64
|
|
func SHRQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSHRQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// SHRW: Logical Shift Right.
|
|
//
|
|
// Forms:
|
|
//
|
|
// SHRW 1 m16
|
|
// SHRW 1 r16
|
|
// SHRW cl m16
|
|
// SHRW cl r16
|
|
// SHRW cl r16 m16
|
|
// SHRW cl r16 r16
|
|
// SHRW imm8 m16
|
|
// SHRW imm8 r16
|
|
// SHRW imm8 r16 m16
|
|
// SHRW imm8 r16 r16
|
|
func SHRW(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSHRW.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// SHRXL: Logical Shift Right Without Affecting Flags.
|
|
//
|
|
// Forms:
|
|
//
|
|
// SHRXL r32 m32 r32
|
|
// SHRXL r32 r32 r32
|
|
func SHRXL(r, mr, r1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSHRXL.Forms(), sffxs{}, []operand.Op{r, mr, r1})
|
|
}
|
|
|
|
// SHRXQ: Logical Shift Right Without Affecting Flags.
|
|
//
|
|
// Forms:
|
|
//
|
|
// SHRXQ r64 m64 r64
|
|
// SHRXQ r64 r64 r64
|
|
func SHRXQ(r, mr, r1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSHRXQ.Forms(), sffxs{}, []operand.Op{r, mr, r1})
|
|
}
|
|
|
|
// SHUFPD: Shuffle Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// SHUFPD imm8 m128 xmm
|
|
// SHUFPD imm8 xmm xmm
|
|
func SHUFPD(i, mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSHUFPD.Forms(), sffxs{}, []operand.Op{i, mx, x})
|
|
}
|
|
|
|
// SHUFPS: Shuffle Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// SHUFPS imm8 m128 xmm
|
|
// SHUFPS imm8 xmm xmm
|
|
func SHUFPS(i, mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSHUFPS.Forms(), sffxs{}, []operand.Op{i, mx, x})
|
|
}
|
|
|
|
// SQRTPD: Compute Square Roots of Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// SQRTPD m128 xmm
|
|
// SQRTPD xmm xmm
|
|
func SQRTPD(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSQRTPD.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// SQRTPS: Compute Square Roots of Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// SQRTPS m128 xmm
|
|
// SQRTPS xmm xmm
|
|
func SQRTPS(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSQRTPS.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// SQRTSD: Compute Square Root of Scalar Double-Precision Floating-Point Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// SQRTSD m64 xmm
|
|
// SQRTSD xmm xmm
|
|
func SQRTSD(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSQRTSD.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// SQRTSS: Compute Square Root of Scalar Single-Precision Floating-Point Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// SQRTSS m32 xmm
|
|
// SQRTSS xmm xmm
|
|
func SQRTSS(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSQRTSS.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// STC: Set Carry Flag.
|
|
//
|
|
// Forms:
|
|
//
|
|
// STC
|
|
func STC() (*intrep.Instruction, error) {
|
|
return build(opcSTC.Forms(), sffxs{}, []operand.Op{})
|
|
}
|
|
|
|
// STD: Set Direction Flag.
|
|
//
|
|
// Forms:
|
|
//
|
|
// STD
|
|
func STD() (*intrep.Instruction, error) {
|
|
return build(opcSTD.Forms(), sffxs{}, []operand.Op{})
|
|
}
|
|
|
|
// STMXCSR: Store MXCSR Register State.
|
|
//
|
|
// Forms:
|
|
//
|
|
// STMXCSR m32
|
|
func STMXCSR(m operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSTMXCSR.Forms(), sffxs{}, []operand.Op{m})
|
|
}
|
|
|
|
// SUBB: Subtract.
|
|
//
|
|
// Forms:
|
|
//
|
|
// SUBB imm8 al
|
|
// SUBB imm8 m8
|
|
// SUBB imm8 r8
|
|
// SUBB m8 r8
|
|
// SUBB r8 m8
|
|
// SUBB r8 r8
|
|
func SUBB(imr, amr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSUBB.Forms(), sffxs{}, []operand.Op{imr, amr})
|
|
}
|
|
|
|
// SUBL: Subtract.
|
|
//
|
|
// Forms:
|
|
//
|
|
// SUBL imm32 eax
|
|
// SUBL imm32 m32
|
|
// SUBL imm32 r32
|
|
// SUBL imm8 m32
|
|
// SUBL imm8 r32
|
|
// SUBL m32 r32
|
|
// SUBL r32 m32
|
|
// SUBL r32 r32
|
|
func SUBL(imr, emr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSUBL.Forms(), sffxs{}, []operand.Op{imr, emr})
|
|
}
|
|
|
|
// SUBPD: Subtract Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// SUBPD m128 xmm
|
|
// SUBPD xmm xmm
|
|
func SUBPD(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSUBPD.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// SUBPS: Subtract Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// SUBPS m128 xmm
|
|
// SUBPS xmm xmm
|
|
func SUBPS(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSUBPS.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// SUBQ: Subtract.
|
|
//
|
|
// Forms:
|
|
//
|
|
// SUBQ imm32 m64
|
|
// SUBQ imm32 r64
|
|
// SUBQ imm32 rax
|
|
// SUBQ imm8 m64
|
|
// SUBQ imm8 r64
|
|
// SUBQ m64 r64
|
|
// SUBQ r64 m64
|
|
// SUBQ r64 r64
|
|
func SUBQ(imr, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSUBQ.Forms(), sffxs{}, []operand.Op{imr, mr})
|
|
}
|
|
|
|
// SUBSD: Subtract Scalar Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// SUBSD m64 xmm
|
|
// SUBSD xmm xmm
|
|
func SUBSD(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSUBSD.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// SUBSS: Subtract Scalar Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// SUBSS m32 xmm
|
|
// SUBSS xmm xmm
|
|
func SUBSS(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSUBSS.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// SUBW: Subtract.
|
|
//
|
|
// Forms:
|
|
//
|
|
// SUBW imm16 ax
|
|
// SUBW imm16 m16
|
|
// SUBW imm16 r16
|
|
// SUBW imm8 m16
|
|
// SUBW imm8 r16
|
|
// SUBW m16 r16
|
|
// SUBW r16 m16
|
|
// SUBW r16 r16
|
|
func SUBW(imr, amr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcSUBW.Forms(), sffxs{}, []operand.Op{imr, amr})
|
|
}
|
|
|
|
// SYSCALL: Fast System Call.
|
|
//
|
|
// Forms:
|
|
//
|
|
// SYSCALL
|
|
func SYSCALL() (*intrep.Instruction, error) {
|
|
return build(opcSYSCALL.Forms(), sffxs{}, []operand.Op{})
|
|
}
|
|
|
|
// TESTB: Logical Compare.
|
|
//
|
|
// Forms:
|
|
//
|
|
// TESTB imm8 al
|
|
// TESTB imm8 m8
|
|
// TESTB imm8 r8
|
|
// TESTB r8 m8
|
|
// TESTB r8 r8
|
|
func TESTB(ir, amr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcTESTB.Forms(), sffxs{}, []operand.Op{ir, amr})
|
|
}
|
|
|
|
// TESTL: Logical Compare.
|
|
//
|
|
// Forms:
|
|
//
|
|
// TESTL imm32 eax
|
|
// TESTL imm32 m32
|
|
// TESTL imm32 r32
|
|
// TESTL r32 m32
|
|
// TESTL r32 r32
|
|
func TESTL(ir, emr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcTESTL.Forms(), sffxs{}, []operand.Op{ir, emr})
|
|
}
|
|
|
|
// TESTQ: Logical Compare.
|
|
//
|
|
// Forms:
|
|
//
|
|
// TESTQ imm32 m64
|
|
// TESTQ imm32 r64
|
|
// TESTQ imm32 rax
|
|
// TESTQ r64 m64
|
|
// TESTQ r64 r64
|
|
func TESTQ(ir, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcTESTQ.Forms(), sffxs{}, []operand.Op{ir, mr})
|
|
}
|
|
|
|
// TESTW: Logical Compare.
|
|
//
|
|
// Forms:
|
|
//
|
|
// TESTW imm16 ax
|
|
// TESTW imm16 m16
|
|
// TESTW imm16 r16
|
|
// TESTW r16 m16
|
|
// TESTW r16 r16
|
|
func TESTW(ir, amr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcTESTW.Forms(), sffxs{}, []operand.Op{ir, amr})
|
|
}
|
|
|
|
// TZCNTL: Count the Number of Trailing Zero Bits.
|
|
//
|
|
// Forms:
|
|
//
|
|
// TZCNTL m32 r32
|
|
// TZCNTL r32 r32
|
|
func TZCNTL(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcTZCNTL.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// TZCNTQ: Count the Number of Trailing Zero Bits.
|
|
//
|
|
// Forms:
|
|
//
|
|
// TZCNTQ m64 r64
|
|
// TZCNTQ r64 r64
|
|
func TZCNTQ(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcTZCNTQ.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// TZCNTW: Count the Number of Trailing Zero Bits.
|
|
//
|
|
// Forms:
|
|
//
|
|
// TZCNTW m16 r16
|
|
// TZCNTW r16 r16
|
|
func TZCNTW(mr, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcTZCNTW.Forms(), sffxs{}, []operand.Op{mr, r})
|
|
}
|
|
|
|
// UCOMISD: Unordered Compare Scalar Double-Precision Floating-Point Values and Set EFLAGS.
|
|
//
|
|
// Forms:
|
|
//
|
|
// UCOMISD m64 xmm
|
|
// UCOMISD xmm xmm
|
|
func UCOMISD(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcUCOMISD.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// UCOMISS: Unordered Compare Scalar Single-Precision Floating-Point Values and Set EFLAGS.
|
|
//
|
|
// Forms:
|
|
//
|
|
// UCOMISS m32 xmm
|
|
// UCOMISS xmm xmm
|
|
func UCOMISS(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcUCOMISS.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// UD2: Undefined Instruction.
|
|
//
|
|
// Forms:
|
|
//
|
|
// UD2
|
|
func UD2() (*intrep.Instruction, error) {
|
|
return build(opcUD2.Forms(), sffxs{}, []operand.Op{})
|
|
}
|
|
|
|
// UNPCKHPD: Unpack and Interleave High Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// UNPCKHPD m128 xmm
|
|
// UNPCKHPD xmm xmm
|
|
func UNPCKHPD(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcUNPCKHPD.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// UNPCKHPS: Unpack and Interleave High Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// UNPCKHPS m128 xmm
|
|
// UNPCKHPS xmm xmm
|
|
func UNPCKHPS(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcUNPCKHPS.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// UNPCKLPD: Unpack and Interleave Low Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// UNPCKLPD m128 xmm
|
|
// UNPCKLPD xmm xmm
|
|
func UNPCKLPD(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcUNPCKLPD.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// UNPCKLPS: Unpack and Interleave Low Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// UNPCKLPS m128 xmm
|
|
// UNPCKLPS xmm xmm
|
|
func UNPCKLPS(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcUNPCKLPS.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// VADDPD: Add Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VADDPD m128 xmm xmm
|
|
// VADDPD m256 ymm ymm
|
|
// VADDPD xmm xmm xmm
|
|
// VADDPD ymm ymm ymm
|
|
// VADDPD m128 xmm k xmm
|
|
// VADDPD m256 ymm k ymm
|
|
// VADDPD xmm xmm k xmm
|
|
// VADDPD ymm ymm k ymm
|
|
// VADDPD m512 zmm k zmm
|
|
// VADDPD m512 zmm zmm
|
|
// VADDPD zmm zmm k zmm
|
|
// VADDPD zmm zmm zmm
|
|
func VADDPD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVADDPD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VADDPD_BCST: Add Packed Double-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VADDPD.BCST m64 xmm k xmm
|
|
// VADDPD.BCST m64 xmm xmm
|
|
// VADDPD.BCST m64 ymm k ymm
|
|
// VADDPD.BCST m64 ymm ymm
|
|
// VADDPD.BCST m64 zmm k zmm
|
|
// VADDPD.BCST m64 zmm zmm
|
|
func VADDPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVADDPD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VADDPD_BCST_Z: Add Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VADDPD.BCST.Z m64 xmm k xmm
|
|
// VADDPD.BCST.Z m64 ymm k ymm
|
|
// VADDPD.BCST.Z m64 zmm k zmm
|
|
func VADDPD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVADDPD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VADDPD_RD_SAE: Add Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VADDPD.RD_SAE zmm zmm k zmm
|
|
// VADDPD.RD_SAE zmm zmm zmm
|
|
func VADDPD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVADDPD.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VADDPD_RD_SAE_Z: Add Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VADDPD.RD_SAE.Z zmm zmm k zmm
|
|
func VADDPD_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVADDPD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VADDPD_RN_SAE: Add Packed Double-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VADDPD.RN_SAE zmm zmm k zmm
|
|
// VADDPD.RN_SAE zmm zmm zmm
|
|
func VADDPD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVADDPD.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VADDPD_RN_SAE_Z: Add Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VADDPD.RN_SAE.Z zmm zmm k zmm
|
|
func VADDPD_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVADDPD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VADDPD_RU_SAE: Add Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VADDPD.RU_SAE zmm zmm k zmm
|
|
// VADDPD.RU_SAE zmm zmm zmm
|
|
func VADDPD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVADDPD.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VADDPD_RU_SAE_Z: Add Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VADDPD.RU_SAE.Z zmm zmm k zmm
|
|
func VADDPD_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVADDPD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VADDPD_RZ_SAE: Add Packed Double-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VADDPD.RZ_SAE zmm zmm k zmm
|
|
// VADDPD.RZ_SAE zmm zmm zmm
|
|
func VADDPD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVADDPD.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VADDPD_RZ_SAE_Z: Add Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VADDPD.RZ_SAE.Z zmm zmm k zmm
|
|
func VADDPD_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVADDPD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VADDPD_Z: Add Packed Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VADDPD.Z m128 xmm k xmm
|
|
// VADDPD.Z m256 ymm k ymm
|
|
// VADDPD.Z xmm xmm k xmm
|
|
// VADDPD.Z ymm ymm k ymm
|
|
// VADDPD.Z m512 zmm k zmm
|
|
// VADDPD.Z zmm zmm k zmm
|
|
func VADDPD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVADDPD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VADDPS: Add Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VADDPS m128 xmm xmm
|
|
// VADDPS m256 ymm ymm
|
|
// VADDPS xmm xmm xmm
|
|
// VADDPS ymm ymm ymm
|
|
// VADDPS m128 xmm k xmm
|
|
// VADDPS m256 ymm k ymm
|
|
// VADDPS xmm xmm k xmm
|
|
// VADDPS ymm ymm k ymm
|
|
// VADDPS m512 zmm k zmm
|
|
// VADDPS m512 zmm zmm
|
|
// VADDPS zmm zmm k zmm
|
|
// VADDPS zmm zmm zmm
|
|
func VADDPS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVADDPS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VADDPS_BCST: Add Packed Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VADDPS.BCST m32 xmm k xmm
|
|
// VADDPS.BCST m32 xmm xmm
|
|
// VADDPS.BCST m32 ymm k ymm
|
|
// VADDPS.BCST m32 ymm ymm
|
|
// VADDPS.BCST m32 zmm k zmm
|
|
// VADDPS.BCST m32 zmm zmm
|
|
func VADDPS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVADDPS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VADDPS_BCST_Z: Add Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VADDPS.BCST.Z m32 xmm k xmm
|
|
// VADDPS.BCST.Z m32 ymm k ymm
|
|
// VADDPS.BCST.Z m32 zmm k zmm
|
|
func VADDPS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVADDPS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VADDPS_RD_SAE: Add Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VADDPS.RD_SAE zmm zmm k zmm
|
|
// VADDPS.RD_SAE zmm zmm zmm
|
|
func VADDPS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVADDPS.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VADDPS_RD_SAE_Z: Add Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VADDPS.RD_SAE.Z zmm zmm k zmm
|
|
func VADDPS_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVADDPS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VADDPS_RN_SAE: Add Packed Single-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VADDPS.RN_SAE zmm zmm k zmm
|
|
// VADDPS.RN_SAE zmm zmm zmm
|
|
func VADDPS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVADDPS.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VADDPS_RN_SAE_Z: Add Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VADDPS.RN_SAE.Z zmm zmm k zmm
|
|
func VADDPS_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVADDPS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VADDPS_RU_SAE: Add Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VADDPS.RU_SAE zmm zmm k zmm
|
|
// VADDPS.RU_SAE zmm zmm zmm
|
|
func VADDPS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVADDPS.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VADDPS_RU_SAE_Z: Add Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VADDPS.RU_SAE.Z zmm zmm k zmm
|
|
func VADDPS_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVADDPS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VADDPS_RZ_SAE: Add Packed Single-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VADDPS.RZ_SAE zmm zmm k zmm
|
|
// VADDPS.RZ_SAE zmm zmm zmm
|
|
func VADDPS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVADDPS.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VADDPS_RZ_SAE_Z: Add Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VADDPS.RZ_SAE.Z zmm zmm k zmm
|
|
func VADDPS_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVADDPS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VADDPS_Z: Add Packed Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VADDPS.Z m128 xmm k xmm
|
|
// VADDPS.Z m256 ymm k ymm
|
|
// VADDPS.Z xmm xmm k xmm
|
|
// VADDPS.Z ymm ymm k ymm
|
|
// VADDPS.Z m512 zmm k zmm
|
|
// VADDPS.Z zmm zmm k zmm
|
|
func VADDPS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVADDPS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VADDSD: Add Scalar Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VADDSD m64 xmm xmm
|
|
// VADDSD xmm xmm xmm
|
|
// VADDSD m64 xmm k xmm
|
|
// VADDSD xmm xmm k xmm
|
|
func VADDSD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVADDSD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VADDSD_RD_SAE: Add Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VADDSD.RD_SAE xmm xmm k xmm
|
|
// VADDSD.RD_SAE xmm xmm xmm
|
|
func VADDSD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVADDSD.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VADDSD_RD_SAE_Z: Add Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VADDSD.RD_SAE.Z xmm xmm k xmm
|
|
func VADDSD_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVADDSD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VADDSD_RN_SAE: Add Scalar Double-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VADDSD.RN_SAE xmm xmm k xmm
|
|
// VADDSD.RN_SAE xmm xmm xmm
|
|
func VADDSD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVADDSD.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VADDSD_RN_SAE_Z: Add Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VADDSD.RN_SAE.Z xmm xmm k xmm
|
|
func VADDSD_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVADDSD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VADDSD_RU_SAE: Add Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VADDSD.RU_SAE xmm xmm k xmm
|
|
// VADDSD.RU_SAE xmm xmm xmm
|
|
func VADDSD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVADDSD.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VADDSD_RU_SAE_Z: Add Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VADDSD.RU_SAE.Z xmm xmm k xmm
|
|
func VADDSD_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVADDSD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VADDSD_RZ_SAE: Add Scalar Double-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VADDSD.RZ_SAE xmm xmm k xmm
|
|
// VADDSD.RZ_SAE xmm xmm xmm
|
|
func VADDSD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVADDSD.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VADDSD_RZ_SAE_Z: Add Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VADDSD.RZ_SAE.Z xmm xmm k xmm
|
|
func VADDSD_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVADDSD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VADDSD_Z: Add Scalar Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VADDSD.Z m64 xmm k xmm
|
|
// VADDSD.Z xmm xmm k xmm
|
|
func VADDSD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVADDSD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VADDSS: Add Scalar Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VADDSS m32 xmm xmm
|
|
// VADDSS xmm xmm xmm
|
|
// VADDSS m32 xmm k xmm
|
|
// VADDSS xmm xmm k xmm
|
|
func VADDSS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVADDSS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VADDSS_RD_SAE: Add Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VADDSS.RD_SAE xmm xmm k xmm
|
|
// VADDSS.RD_SAE xmm xmm xmm
|
|
func VADDSS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVADDSS.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VADDSS_RD_SAE_Z: Add Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VADDSS.RD_SAE.Z xmm xmm k xmm
|
|
func VADDSS_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVADDSS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VADDSS_RN_SAE: Add Scalar Single-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VADDSS.RN_SAE xmm xmm k xmm
|
|
// VADDSS.RN_SAE xmm xmm xmm
|
|
func VADDSS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVADDSS.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VADDSS_RN_SAE_Z: Add Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VADDSS.RN_SAE.Z xmm xmm k xmm
|
|
func VADDSS_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVADDSS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VADDSS_RU_SAE: Add Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VADDSS.RU_SAE xmm xmm k xmm
|
|
// VADDSS.RU_SAE xmm xmm xmm
|
|
func VADDSS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVADDSS.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VADDSS_RU_SAE_Z: Add Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VADDSS.RU_SAE.Z xmm xmm k xmm
|
|
func VADDSS_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVADDSS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VADDSS_RZ_SAE: Add Scalar Single-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VADDSS.RZ_SAE xmm xmm k xmm
|
|
// VADDSS.RZ_SAE xmm xmm xmm
|
|
func VADDSS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVADDSS.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VADDSS_RZ_SAE_Z: Add Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VADDSS.RZ_SAE.Z xmm xmm k xmm
|
|
func VADDSS_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVADDSS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VADDSS_Z: Add Scalar Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VADDSS.Z m32 xmm k xmm
|
|
// VADDSS.Z xmm xmm k xmm
|
|
func VADDSS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVADDSS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VADDSUBPD: Packed Double-FP Add/Subtract.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VADDSUBPD m128 xmm xmm
|
|
// VADDSUBPD m256 ymm ymm
|
|
// VADDSUBPD xmm xmm xmm
|
|
// VADDSUBPD ymm ymm ymm
|
|
func VADDSUBPD(mxy, xy, xy1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVADDSUBPD.Forms(), sffxs{}, []operand.Op{mxy, xy, xy1})
|
|
}
|
|
|
|
// VADDSUBPS: Packed Single-FP Add/Subtract.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VADDSUBPS m128 xmm xmm
|
|
// VADDSUBPS m256 ymm ymm
|
|
// VADDSUBPS xmm xmm xmm
|
|
// VADDSUBPS ymm ymm ymm
|
|
func VADDSUBPS(mxy, xy, xy1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVADDSUBPS.Forms(), sffxs{}, []operand.Op{mxy, xy, xy1})
|
|
}
|
|
|
|
// VAESDEC: Perform One Round of an AES Decryption Flow.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VAESDEC m128 xmm xmm
|
|
// VAESDEC xmm xmm xmm
|
|
// VAESDEC m256 ymm ymm
|
|
// VAESDEC ymm ymm ymm
|
|
// VAESDEC m512 zmm zmm
|
|
// VAESDEC zmm zmm zmm
|
|
func VAESDEC(mxyz, xyz, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVAESDEC.Forms(), sffxs{}, []operand.Op{mxyz, xyz, xyz1})
|
|
}
|
|
|
|
// VAESDECLAST: Perform Last Round of an AES Decryption Flow.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VAESDECLAST m128 xmm xmm
|
|
// VAESDECLAST xmm xmm xmm
|
|
// VAESDECLAST m256 ymm ymm
|
|
// VAESDECLAST ymm ymm ymm
|
|
// VAESDECLAST m512 zmm zmm
|
|
// VAESDECLAST zmm zmm zmm
|
|
func VAESDECLAST(mxyz, xyz, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVAESDECLAST.Forms(), sffxs{}, []operand.Op{mxyz, xyz, xyz1})
|
|
}
|
|
|
|
// VAESENC: Perform One Round of an AES Encryption Flow.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VAESENC m128 xmm xmm
|
|
// VAESENC xmm xmm xmm
|
|
// VAESENC m256 ymm ymm
|
|
// VAESENC ymm ymm ymm
|
|
// VAESENC m512 zmm zmm
|
|
// VAESENC zmm zmm zmm
|
|
func VAESENC(mxyz, xyz, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVAESENC.Forms(), sffxs{}, []operand.Op{mxyz, xyz, xyz1})
|
|
}
|
|
|
|
// VAESENCLAST: Perform Last Round of an AES Encryption Flow.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VAESENCLAST m128 xmm xmm
|
|
// VAESENCLAST xmm xmm xmm
|
|
// VAESENCLAST m256 ymm ymm
|
|
// VAESENCLAST ymm ymm ymm
|
|
// VAESENCLAST m512 zmm zmm
|
|
// VAESENCLAST zmm zmm zmm
|
|
func VAESENCLAST(mxyz, xyz, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVAESENCLAST.Forms(), sffxs{}, []operand.Op{mxyz, xyz, xyz1})
|
|
}
|
|
|
|
// VAESIMC: Perform the AES InvMixColumn Transformation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VAESIMC m128 xmm
|
|
// VAESIMC xmm xmm
|
|
func VAESIMC(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVAESIMC.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// VAESKEYGENASSIST: AES Round Key Generation Assist.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VAESKEYGENASSIST imm8 m128 xmm
|
|
// VAESKEYGENASSIST imm8 xmm xmm
|
|
func VAESKEYGENASSIST(i, mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVAESKEYGENASSIST.Forms(), sffxs{}, []operand.Op{i, mx, x})
|
|
}
|
|
|
|
// VALIGND: Align Doubleword Vectors.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VALIGND imm8 m128 xmm k xmm
|
|
// VALIGND imm8 m128 xmm xmm
|
|
// VALIGND imm8 m256 ymm k ymm
|
|
// VALIGND imm8 m256 ymm ymm
|
|
// VALIGND imm8 xmm xmm k xmm
|
|
// VALIGND imm8 xmm xmm xmm
|
|
// VALIGND imm8 ymm ymm k ymm
|
|
// VALIGND imm8 ymm ymm ymm
|
|
// VALIGND imm8 m512 zmm k zmm
|
|
// VALIGND imm8 m512 zmm zmm
|
|
// VALIGND imm8 zmm zmm k zmm
|
|
// VALIGND imm8 zmm zmm zmm
|
|
func VALIGND(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVALIGND.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VALIGND_BCST: Align Doubleword Vectors (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VALIGND.BCST imm8 m32 xmm k xmm
|
|
// VALIGND.BCST imm8 m32 xmm xmm
|
|
// VALIGND.BCST imm8 m32 ymm k ymm
|
|
// VALIGND.BCST imm8 m32 ymm ymm
|
|
// VALIGND.BCST imm8 m32 zmm k zmm
|
|
// VALIGND.BCST imm8 m32 zmm zmm
|
|
func VALIGND_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVALIGND.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VALIGND_BCST_Z: Align Doubleword Vectors (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VALIGND.BCST.Z imm8 m32 xmm k xmm
|
|
// VALIGND.BCST.Z imm8 m32 ymm k ymm
|
|
// VALIGND.BCST.Z imm8 m32 zmm k zmm
|
|
func VALIGND_BCST_Z(i, m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVALIGND.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VALIGND_Z: Align Doubleword Vectors (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VALIGND.Z imm8 m128 xmm k xmm
|
|
// VALIGND.Z imm8 m256 ymm k ymm
|
|
// VALIGND.Z imm8 xmm xmm k xmm
|
|
// VALIGND.Z imm8 ymm ymm k ymm
|
|
// VALIGND.Z imm8 m512 zmm k zmm
|
|
// VALIGND.Z imm8 zmm zmm k zmm
|
|
func VALIGND_Z(i, mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVALIGND.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VALIGNQ: Align Quadword Vectors.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VALIGNQ imm8 m128 xmm k xmm
|
|
// VALIGNQ imm8 m128 xmm xmm
|
|
// VALIGNQ imm8 m256 ymm k ymm
|
|
// VALIGNQ imm8 m256 ymm ymm
|
|
// VALIGNQ imm8 xmm xmm k xmm
|
|
// VALIGNQ imm8 xmm xmm xmm
|
|
// VALIGNQ imm8 ymm ymm k ymm
|
|
// VALIGNQ imm8 ymm ymm ymm
|
|
// VALIGNQ imm8 m512 zmm k zmm
|
|
// VALIGNQ imm8 m512 zmm zmm
|
|
// VALIGNQ imm8 zmm zmm k zmm
|
|
// VALIGNQ imm8 zmm zmm zmm
|
|
func VALIGNQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVALIGNQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VALIGNQ_BCST: Align Quadword Vectors (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VALIGNQ.BCST imm8 m64 xmm k xmm
|
|
// VALIGNQ.BCST imm8 m64 xmm xmm
|
|
// VALIGNQ.BCST imm8 m64 ymm k ymm
|
|
// VALIGNQ.BCST imm8 m64 ymm ymm
|
|
// VALIGNQ.BCST imm8 m64 zmm k zmm
|
|
// VALIGNQ.BCST imm8 m64 zmm zmm
|
|
func VALIGNQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVALIGNQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VALIGNQ_BCST_Z: Align Quadword Vectors (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VALIGNQ.BCST.Z imm8 m64 xmm k xmm
|
|
// VALIGNQ.BCST.Z imm8 m64 ymm k ymm
|
|
// VALIGNQ.BCST.Z imm8 m64 zmm k zmm
|
|
func VALIGNQ_BCST_Z(i, m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVALIGNQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VALIGNQ_Z: Align Quadword Vectors (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VALIGNQ.Z imm8 m128 xmm k xmm
|
|
// VALIGNQ.Z imm8 m256 ymm k ymm
|
|
// VALIGNQ.Z imm8 xmm xmm k xmm
|
|
// VALIGNQ.Z imm8 ymm ymm k ymm
|
|
// VALIGNQ.Z imm8 m512 zmm k zmm
|
|
// VALIGNQ.Z imm8 zmm zmm k zmm
|
|
func VALIGNQ_Z(i, mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVALIGNQ.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VANDNPD: Bitwise Logical AND NOT of Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VANDNPD m128 xmm xmm
|
|
// VANDNPD m256 ymm ymm
|
|
// VANDNPD xmm xmm xmm
|
|
// VANDNPD ymm ymm ymm
|
|
// VANDNPD m128 xmm k xmm
|
|
// VANDNPD m256 ymm k ymm
|
|
// VANDNPD xmm xmm k xmm
|
|
// VANDNPD ymm ymm k ymm
|
|
// VANDNPD m512 zmm k zmm
|
|
// VANDNPD m512 zmm zmm
|
|
// VANDNPD zmm zmm k zmm
|
|
// VANDNPD zmm zmm zmm
|
|
func VANDNPD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVANDNPD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VANDNPD_BCST: Bitwise Logical AND NOT of Packed Double-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VANDNPD.BCST m64 xmm k xmm
|
|
// VANDNPD.BCST m64 xmm xmm
|
|
// VANDNPD.BCST m64 ymm k ymm
|
|
// VANDNPD.BCST m64 ymm ymm
|
|
// VANDNPD.BCST m64 zmm k zmm
|
|
// VANDNPD.BCST m64 zmm zmm
|
|
func VANDNPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVANDNPD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VANDNPD_BCST_Z: Bitwise Logical AND NOT of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VANDNPD.BCST.Z m64 xmm k xmm
|
|
// VANDNPD.BCST.Z m64 ymm k ymm
|
|
// VANDNPD.BCST.Z m64 zmm k zmm
|
|
func VANDNPD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVANDNPD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VANDNPD_Z: Bitwise Logical AND NOT of Packed Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VANDNPD.Z m128 xmm k xmm
|
|
// VANDNPD.Z m256 ymm k ymm
|
|
// VANDNPD.Z xmm xmm k xmm
|
|
// VANDNPD.Z ymm ymm k ymm
|
|
// VANDNPD.Z m512 zmm k zmm
|
|
// VANDNPD.Z zmm zmm k zmm
|
|
func VANDNPD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVANDNPD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VANDNPS: Bitwise Logical AND NOT of Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VANDNPS m128 xmm xmm
|
|
// VANDNPS m256 ymm ymm
|
|
// VANDNPS xmm xmm xmm
|
|
// VANDNPS ymm ymm ymm
|
|
// VANDNPS m128 xmm k xmm
|
|
// VANDNPS m256 ymm k ymm
|
|
// VANDNPS xmm xmm k xmm
|
|
// VANDNPS ymm ymm k ymm
|
|
// VANDNPS m512 zmm k zmm
|
|
// VANDNPS m512 zmm zmm
|
|
// VANDNPS zmm zmm k zmm
|
|
// VANDNPS zmm zmm zmm
|
|
func VANDNPS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVANDNPS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VANDNPS_BCST: Bitwise Logical AND NOT of Packed Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VANDNPS.BCST m32 xmm k xmm
|
|
// VANDNPS.BCST m32 xmm xmm
|
|
// VANDNPS.BCST m32 ymm k ymm
|
|
// VANDNPS.BCST m32 ymm ymm
|
|
// VANDNPS.BCST m32 zmm k zmm
|
|
// VANDNPS.BCST m32 zmm zmm
|
|
func VANDNPS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVANDNPS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VANDNPS_BCST_Z: Bitwise Logical AND NOT of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VANDNPS.BCST.Z m32 xmm k xmm
|
|
// VANDNPS.BCST.Z m32 ymm k ymm
|
|
// VANDNPS.BCST.Z m32 zmm k zmm
|
|
func VANDNPS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVANDNPS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VANDNPS_Z: Bitwise Logical AND NOT of Packed Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VANDNPS.Z m128 xmm k xmm
|
|
// VANDNPS.Z m256 ymm k ymm
|
|
// VANDNPS.Z xmm xmm k xmm
|
|
// VANDNPS.Z ymm ymm k ymm
|
|
// VANDNPS.Z m512 zmm k zmm
|
|
// VANDNPS.Z zmm zmm k zmm
|
|
func VANDNPS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVANDNPS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VANDPD: Bitwise Logical AND of Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VANDPD m128 xmm xmm
|
|
// VANDPD m256 ymm ymm
|
|
// VANDPD xmm xmm xmm
|
|
// VANDPD ymm ymm ymm
|
|
// VANDPD m128 xmm k xmm
|
|
// VANDPD m256 ymm k ymm
|
|
// VANDPD xmm xmm k xmm
|
|
// VANDPD ymm ymm k ymm
|
|
// VANDPD m512 zmm k zmm
|
|
// VANDPD m512 zmm zmm
|
|
// VANDPD zmm zmm k zmm
|
|
// VANDPD zmm zmm zmm
|
|
func VANDPD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVANDPD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VANDPD_BCST: Bitwise Logical AND of Packed Double-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VANDPD.BCST m64 xmm k xmm
|
|
// VANDPD.BCST m64 xmm xmm
|
|
// VANDPD.BCST m64 ymm k ymm
|
|
// VANDPD.BCST m64 ymm ymm
|
|
// VANDPD.BCST m64 zmm k zmm
|
|
// VANDPD.BCST m64 zmm zmm
|
|
func VANDPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVANDPD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VANDPD_BCST_Z: Bitwise Logical AND of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VANDPD.BCST.Z m64 xmm k xmm
|
|
// VANDPD.BCST.Z m64 ymm k ymm
|
|
// VANDPD.BCST.Z m64 zmm k zmm
|
|
func VANDPD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVANDPD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VANDPD_Z: Bitwise Logical AND of Packed Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VANDPD.Z m128 xmm k xmm
|
|
// VANDPD.Z m256 ymm k ymm
|
|
// VANDPD.Z xmm xmm k xmm
|
|
// VANDPD.Z ymm ymm k ymm
|
|
// VANDPD.Z m512 zmm k zmm
|
|
// VANDPD.Z zmm zmm k zmm
|
|
func VANDPD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVANDPD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VANDPS: Bitwise Logical AND of Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VANDPS m128 xmm xmm
|
|
// VANDPS m256 ymm ymm
|
|
// VANDPS xmm xmm xmm
|
|
// VANDPS ymm ymm ymm
|
|
// VANDPS m128 xmm k xmm
|
|
// VANDPS m256 ymm k ymm
|
|
// VANDPS xmm xmm k xmm
|
|
// VANDPS ymm ymm k ymm
|
|
// VANDPS m512 zmm k zmm
|
|
// VANDPS m512 zmm zmm
|
|
// VANDPS zmm zmm k zmm
|
|
// VANDPS zmm zmm zmm
|
|
func VANDPS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVANDPS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VANDPS_BCST: Bitwise Logical AND of Packed Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VANDPS.BCST m32 xmm k xmm
|
|
// VANDPS.BCST m32 xmm xmm
|
|
// VANDPS.BCST m32 ymm k ymm
|
|
// VANDPS.BCST m32 ymm ymm
|
|
// VANDPS.BCST m32 zmm k zmm
|
|
// VANDPS.BCST m32 zmm zmm
|
|
func VANDPS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVANDPS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VANDPS_BCST_Z: Bitwise Logical AND of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VANDPS.BCST.Z m32 xmm k xmm
|
|
// VANDPS.BCST.Z m32 ymm k ymm
|
|
// VANDPS.BCST.Z m32 zmm k zmm
|
|
func VANDPS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVANDPS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VANDPS_Z: Bitwise Logical AND of Packed Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VANDPS.Z m128 xmm k xmm
|
|
// VANDPS.Z m256 ymm k ymm
|
|
// VANDPS.Z xmm xmm k xmm
|
|
// VANDPS.Z ymm ymm k ymm
|
|
// VANDPS.Z m512 zmm k zmm
|
|
// VANDPS.Z zmm zmm k zmm
|
|
func VANDPS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVANDPS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VBLENDMPD: Blend Packed Double-Precision Floating-Point Vectors Using an OpMask Control.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VBLENDMPD m128 xmm k xmm
|
|
// VBLENDMPD m128 xmm xmm
|
|
// VBLENDMPD m256 ymm k ymm
|
|
// VBLENDMPD m256 ymm ymm
|
|
// VBLENDMPD xmm xmm k xmm
|
|
// VBLENDMPD xmm xmm xmm
|
|
// VBLENDMPD ymm ymm k ymm
|
|
// VBLENDMPD ymm ymm ymm
|
|
// VBLENDMPD m512 zmm k zmm
|
|
// VBLENDMPD m512 zmm zmm
|
|
// VBLENDMPD zmm zmm k zmm
|
|
// VBLENDMPD zmm zmm zmm
|
|
func VBLENDMPD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVBLENDMPD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VBLENDMPD_BCST: Blend Packed Double-Precision Floating-Point Vectors Using an OpMask Control (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VBLENDMPD.BCST m64 xmm k xmm
|
|
// VBLENDMPD.BCST m64 xmm xmm
|
|
// VBLENDMPD.BCST m64 ymm k ymm
|
|
// VBLENDMPD.BCST m64 ymm ymm
|
|
// VBLENDMPD.BCST m64 zmm k zmm
|
|
// VBLENDMPD.BCST m64 zmm zmm
|
|
func VBLENDMPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVBLENDMPD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VBLENDMPD_BCST_Z: Blend Packed Double-Precision Floating-Point Vectors Using an OpMask Control (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VBLENDMPD.BCST.Z m64 xmm k xmm
|
|
// VBLENDMPD.BCST.Z m64 ymm k ymm
|
|
// VBLENDMPD.BCST.Z m64 zmm k zmm
|
|
func VBLENDMPD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVBLENDMPD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VBLENDMPD_Z: Blend Packed Double-Precision Floating-Point Vectors Using an OpMask Control (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VBLENDMPD.Z m128 xmm k xmm
|
|
// VBLENDMPD.Z m256 ymm k ymm
|
|
// VBLENDMPD.Z xmm xmm k xmm
|
|
// VBLENDMPD.Z ymm ymm k ymm
|
|
// VBLENDMPD.Z m512 zmm k zmm
|
|
// VBLENDMPD.Z zmm zmm k zmm
|
|
func VBLENDMPD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVBLENDMPD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VBLENDMPS: Blend Packed Single-Precision Floating-Point Vectors Using an OpMask Control.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VBLENDMPS m128 xmm k xmm
|
|
// VBLENDMPS m128 xmm xmm
|
|
// VBLENDMPS m256 ymm k ymm
|
|
// VBLENDMPS m256 ymm ymm
|
|
// VBLENDMPS xmm xmm k xmm
|
|
// VBLENDMPS xmm xmm xmm
|
|
// VBLENDMPS ymm ymm k ymm
|
|
// VBLENDMPS ymm ymm ymm
|
|
// VBLENDMPS m512 zmm k zmm
|
|
// VBLENDMPS m512 zmm zmm
|
|
// VBLENDMPS zmm zmm k zmm
|
|
// VBLENDMPS zmm zmm zmm
|
|
func VBLENDMPS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVBLENDMPS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VBLENDMPS_BCST: Blend Packed Single-Precision Floating-Point Vectors Using an OpMask Control (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VBLENDMPS.BCST m32 xmm k xmm
|
|
// VBLENDMPS.BCST m32 xmm xmm
|
|
// VBLENDMPS.BCST m32 ymm k ymm
|
|
// VBLENDMPS.BCST m32 ymm ymm
|
|
// VBLENDMPS.BCST m32 zmm k zmm
|
|
// VBLENDMPS.BCST m32 zmm zmm
|
|
func VBLENDMPS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVBLENDMPS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VBLENDMPS_BCST_Z: Blend Packed Single-Precision Floating-Point Vectors Using an OpMask Control (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VBLENDMPS.BCST.Z m32 xmm k xmm
|
|
// VBLENDMPS.BCST.Z m32 ymm k ymm
|
|
// VBLENDMPS.BCST.Z m32 zmm k zmm
|
|
func VBLENDMPS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVBLENDMPS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VBLENDMPS_Z: Blend Packed Single-Precision Floating-Point Vectors Using an OpMask Control (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VBLENDMPS.Z m128 xmm k xmm
|
|
// VBLENDMPS.Z m256 ymm k ymm
|
|
// VBLENDMPS.Z xmm xmm k xmm
|
|
// VBLENDMPS.Z ymm ymm k ymm
|
|
// VBLENDMPS.Z m512 zmm k zmm
|
|
// VBLENDMPS.Z zmm zmm k zmm
|
|
func VBLENDMPS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVBLENDMPS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VBLENDPD: Blend Packed Double Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VBLENDPD imm8 m128 xmm xmm
|
|
// VBLENDPD imm8 m256 ymm ymm
|
|
// VBLENDPD imm8 xmm xmm xmm
|
|
// VBLENDPD imm8 ymm ymm ymm
|
|
func VBLENDPD(i, mxy, xy, xy1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVBLENDPD.Forms(), sffxs{}, []operand.Op{i, mxy, xy, xy1})
|
|
}
|
|
|
|
// VBLENDPS: Blend Packed Single Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VBLENDPS imm8 m128 xmm xmm
|
|
// VBLENDPS imm8 m256 ymm ymm
|
|
// VBLENDPS imm8 xmm xmm xmm
|
|
// VBLENDPS imm8 ymm ymm ymm
|
|
func VBLENDPS(i, mxy, xy, xy1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVBLENDPS.Forms(), sffxs{}, []operand.Op{i, mxy, xy, xy1})
|
|
}
|
|
|
|
// VBLENDVPD: Variable Blend Packed Double Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VBLENDVPD xmm m128 xmm xmm
|
|
// VBLENDVPD xmm xmm xmm xmm
|
|
// VBLENDVPD ymm m256 ymm ymm
|
|
// VBLENDVPD ymm ymm ymm ymm
|
|
func VBLENDVPD(xy, mxy, xy1, xy2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVBLENDVPD.Forms(), sffxs{}, []operand.Op{xy, mxy, xy1, xy2})
|
|
}
|
|
|
|
// VBLENDVPS: Variable Blend Packed Single Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VBLENDVPS xmm m128 xmm xmm
|
|
// VBLENDVPS xmm xmm xmm xmm
|
|
// VBLENDVPS ymm m256 ymm ymm
|
|
// VBLENDVPS ymm ymm ymm ymm
|
|
func VBLENDVPS(xy, mxy, xy1, xy2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVBLENDVPS.Forms(), sffxs{}, []operand.Op{xy, mxy, xy1, xy2})
|
|
}
|
|
|
|
// VBROADCASTF128: Broadcast 128 Bit of Floating-Point Data.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VBROADCASTF128 m128 ymm
|
|
func VBROADCASTF128(m, y operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVBROADCASTF128.Forms(), sffxs{}, []operand.Op{m, y})
|
|
}
|
|
|
|
// VBROADCASTF32X2: Broadcast Two Single-Precision Floating-Point Elements.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VBROADCASTF32X2 m64 k ymm
|
|
// VBROADCASTF32X2 m64 ymm
|
|
// VBROADCASTF32X2 xmm k ymm
|
|
// VBROADCASTF32X2 xmm ymm
|
|
// VBROADCASTF32X2 m64 k zmm
|
|
// VBROADCASTF32X2 m64 zmm
|
|
// VBROADCASTF32X2 xmm k zmm
|
|
// VBROADCASTF32X2 xmm zmm
|
|
func VBROADCASTF32X2(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVBROADCASTF32X2.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VBROADCASTF32X2_Z: Broadcast Two Single-Precision Floating-Point Elements (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VBROADCASTF32X2.Z m64 k ymm
|
|
// VBROADCASTF32X2.Z xmm k ymm
|
|
// VBROADCASTF32X2.Z m64 k zmm
|
|
// VBROADCASTF32X2.Z xmm k zmm
|
|
func VBROADCASTF32X2_Z(mx, k, yz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVBROADCASTF32X2.Forms(), sffxs{sffxZ}, []operand.Op{mx, k, yz})
|
|
}
|
|
|
|
// VBROADCASTF32X4: Broadcast Four Single-Precision Floating-Point Elements.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VBROADCASTF32X4 m128 k ymm
|
|
// VBROADCASTF32X4 m128 ymm
|
|
// VBROADCASTF32X4 m128 k zmm
|
|
// VBROADCASTF32X4 m128 zmm
|
|
func VBROADCASTF32X4(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVBROADCASTF32X4.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VBROADCASTF32X4_Z: Broadcast Four Single-Precision Floating-Point Elements (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VBROADCASTF32X4.Z m128 k ymm
|
|
// VBROADCASTF32X4.Z m128 k zmm
|
|
func VBROADCASTF32X4_Z(m, k, yz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVBROADCASTF32X4.Forms(), sffxs{sffxZ}, []operand.Op{m, k, yz})
|
|
}
|
|
|
|
// VBROADCASTF32X8: Broadcast Eight Single-Precision Floating-Point Elements.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VBROADCASTF32X8 m256 k zmm
|
|
// VBROADCASTF32X8 m256 zmm
|
|
func VBROADCASTF32X8(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVBROADCASTF32X8.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VBROADCASTF32X8_Z: Broadcast Eight Single-Precision Floating-Point Elements (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VBROADCASTF32X8.Z m256 k zmm
|
|
func VBROADCASTF32X8_Z(m, k, z operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVBROADCASTF32X8.Forms(), sffxs{sffxZ}, []operand.Op{m, k, z})
|
|
}
|
|
|
|
// VBROADCASTF64X2: Broadcast Two Double-Precision Floating-Point Elements.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VBROADCASTF64X2 m128 k ymm
|
|
// VBROADCASTF64X2 m128 ymm
|
|
// VBROADCASTF64X2 m128 k zmm
|
|
// VBROADCASTF64X2 m128 zmm
|
|
func VBROADCASTF64X2(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVBROADCASTF64X2.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VBROADCASTF64X2_Z: Broadcast Two Double-Precision Floating-Point Elements (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VBROADCASTF64X2.Z m128 k ymm
|
|
// VBROADCASTF64X2.Z m128 k zmm
|
|
func VBROADCASTF64X2_Z(m, k, yz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVBROADCASTF64X2.Forms(), sffxs{sffxZ}, []operand.Op{m, k, yz})
|
|
}
|
|
|
|
// VBROADCASTF64X4: Broadcast Four Double-Precision Floating-Point Elements.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VBROADCASTF64X4 m256 k zmm
|
|
// VBROADCASTF64X4 m256 zmm
|
|
func VBROADCASTF64X4(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVBROADCASTF64X4.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VBROADCASTF64X4_Z: Broadcast Four Double-Precision Floating-Point Elements (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VBROADCASTF64X4.Z m256 k zmm
|
|
func VBROADCASTF64X4_Z(m, k, z operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVBROADCASTF64X4.Forms(), sffxs{sffxZ}, []operand.Op{m, k, z})
|
|
}
|
|
|
|
// VBROADCASTI128: Broadcast 128 Bits of Integer Data.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VBROADCASTI128 m128 ymm
|
|
func VBROADCASTI128(m, y operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVBROADCASTI128.Forms(), sffxs{}, []operand.Op{m, y})
|
|
}
|
|
|
|
// VBROADCASTI32X2: Broadcast Two Doubleword Elements.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VBROADCASTI32X2 m64 k xmm
|
|
// VBROADCASTI32X2 m64 k ymm
|
|
// VBROADCASTI32X2 m64 xmm
|
|
// VBROADCASTI32X2 m64 ymm
|
|
// VBROADCASTI32X2 xmm k xmm
|
|
// VBROADCASTI32X2 xmm k ymm
|
|
// VBROADCASTI32X2 xmm xmm
|
|
// VBROADCASTI32X2 xmm ymm
|
|
// VBROADCASTI32X2 m64 k zmm
|
|
// VBROADCASTI32X2 m64 zmm
|
|
// VBROADCASTI32X2 xmm k zmm
|
|
// VBROADCASTI32X2 xmm zmm
|
|
func VBROADCASTI32X2(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVBROADCASTI32X2.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VBROADCASTI32X2_Z: Broadcast Two Doubleword Elements (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VBROADCASTI32X2.Z m64 k xmm
|
|
// VBROADCASTI32X2.Z m64 k ymm
|
|
// VBROADCASTI32X2.Z xmm k xmm
|
|
// VBROADCASTI32X2.Z xmm k ymm
|
|
// VBROADCASTI32X2.Z m64 k zmm
|
|
// VBROADCASTI32X2.Z xmm k zmm
|
|
func VBROADCASTI32X2_Z(mx, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVBROADCASTI32X2.Forms(), sffxs{sffxZ}, []operand.Op{mx, k, xyz})
|
|
}
|
|
|
|
// VBROADCASTI32X4: Broadcast Four Doubleword Elements.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VBROADCASTI32X4 m128 k ymm
|
|
// VBROADCASTI32X4 m128 ymm
|
|
// VBROADCASTI32X4 m128 k zmm
|
|
// VBROADCASTI32X4 m128 zmm
|
|
func VBROADCASTI32X4(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVBROADCASTI32X4.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VBROADCASTI32X4_Z: Broadcast Four Doubleword Elements (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VBROADCASTI32X4.Z m128 k ymm
|
|
// VBROADCASTI32X4.Z m128 k zmm
|
|
func VBROADCASTI32X4_Z(m, k, yz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVBROADCASTI32X4.Forms(), sffxs{sffxZ}, []operand.Op{m, k, yz})
|
|
}
|
|
|
|
// VBROADCASTI32X8: Broadcast Eight Doubleword Elements.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VBROADCASTI32X8 m256 k zmm
|
|
// VBROADCASTI32X8 m256 zmm
|
|
func VBROADCASTI32X8(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVBROADCASTI32X8.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VBROADCASTI32X8_Z: Broadcast Eight Doubleword Elements (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VBROADCASTI32X8.Z m256 k zmm
|
|
func VBROADCASTI32X8_Z(m, k, z operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVBROADCASTI32X8.Forms(), sffxs{sffxZ}, []operand.Op{m, k, z})
|
|
}
|
|
|
|
// VBROADCASTI64X2: Broadcast Two Quadword Elements.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VBROADCASTI64X2 m128 k ymm
|
|
// VBROADCASTI64X2 m128 ymm
|
|
// VBROADCASTI64X2 m128 k zmm
|
|
// VBROADCASTI64X2 m128 zmm
|
|
func VBROADCASTI64X2(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVBROADCASTI64X2.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VBROADCASTI64X2_Z: Broadcast Two Quadword Elements (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VBROADCASTI64X2.Z m128 k ymm
|
|
// VBROADCASTI64X2.Z m128 k zmm
|
|
func VBROADCASTI64X2_Z(m, k, yz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVBROADCASTI64X2.Forms(), sffxs{sffxZ}, []operand.Op{m, k, yz})
|
|
}
|
|
|
|
// VBROADCASTI64X4: Broadcast Four Quadword Elements.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VBROADCASTI64X4 m256 k zmm
|
|
// VBROADCASTI64X4 m256 zmm
|
|
func VBROADCASTI64X4(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVBROADCASTI64X4.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VBROADCASTI64X4_Z: Broadcast Four Quadword Elements (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VBROADCASTI64X4.Z m256 k zmm
|
|
func VBROADCASTI64X4_Z(m, k, z operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVBROADCASTI64X4.Forms(), sffxs{sffxZ}, []operand.Op{m, k, z})
|
|
}
|
|
|
|
// VBROADCASTSD: Broadcast Double-Precision Floating-Point Element.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VBROADCASTSD xmm ymm
|
|
// VBROADCASTSD m64 ymm
|
|
// VBROADCASTSD m64 k ymm
|
|
// VBROADCASTSD xmm k ymm
|
|
// VBROADCASTSD m64 k zmm
|
|
// VBROADCASTSD m64 zmm
|
|
// VBROADCASTSD xmm k zmm
|
|
// VBROADCASTSD xmm zmm
|
|
func VBROADCASTSD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVBROADCASTSD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VBROADCASTSD_Z: Broadcast Double-Precision Floating-Point Element (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VBROADCASTSD.Z m64 k ymm
|
|
// VBROADCASTSD.Z xmm k ymm
|
|
// VBROADCASTSD.Z m64 k zmm
|
|
// VBROADCASTSD.Z xmm k zmm
|
|
func VBROADCASTSD_Z(mx, k, yz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVBROADCASTSD.Forms(), sffxs{sffxZ}, []operand.Op{mx, k, yz})
|
|
}
|
|
|
|
// VBROADCASTSS: Broadcast Single-Precision Floating-Point Element.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VBROADCASTSS xmm xmm
|
|
// VBROADCASTSS xmm ymm
|
|
// VBROADCASTSS m32 xmm
|
|
// VBROADCASTSS m32 ymm
|
|
// VBROADCASTSS m32 k ymm
|
|
// VBROADCASTSS xmm k ymm
|
|
// VBROADCASTSS m32 k zmm
|
|
// VBROADCASTSS m32 zmm
|
|
// VBROADCASTSS xmm k zmm
|
|
// VBROADCASTSS xmm zmm
|
|
func VBROADCASTSS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVBROADCASTSS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VBROADCASTSS_Z: Broadcast Single-Precision Floating-Point Element (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VBROADCASTSS.Z m32 k ymm
|
|
// VBROADCASTSS.Z xmm k ymm
|
|
// VBROADCASTSS.Z m32 k zmm
|
|
// VBROADCASTSS.Z xmm k zmm
|
|
func VBROADCASTSS_Z(mx, k, yz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVBROADCASTSS.Forms(), sffxs{sffxZ}, []operand.Op{mx, k, yz})
|
|
}
|
|
|
|
// VCMPPD: Compare Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCMPPD imm8 m128 xmm xmm
|
|
// VCMPPD imm8 m256 ymm ymm
|
|
// VCMPPD imm8 xmm xmm xmm
|
|
// VCMPPD imm8 ymm ymm ymm
|
|
// VCMPPD imm8 m128 xmm k k
|
|
// VCMPPD imm8 m128 xmm k
|
|
// VCMPPD imm8 m256 ymm k k
|
|
// VCMPPD imm8 m256 ymm k
|
|
// VCMPPD imm8 xmm xmm k k
|
|
// VCMPPD imm8 xmm xmm k
|
|
// VCMPPD imm8 ymm ymm k k
|
|
// VCMPPD imm8 ymm ymm k
|
|
// VCMPPD imm8 m512 zmm k k
|
|
// VCMPPD imm8 m512 zmm k
|
|
// VCMPPD imm8 zmm zmm k k
|
|
// VCMPPD imm8 zmm zmm k
|
|
func VCMPPD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCMPPD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VCMPPD_BCST: Compare Packed Double-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCMPPD.BCST imm8 m64 xmm k k
|
|
// VCMPPD.BCST imm8 m64 xmm k
|
|
// VCMPPD.BCST imm8 m64 ymm k k
|
|
// VCMPPD.BCST imm8 m64 ymm k
|
|
// VCMPPD.BCST imm8 m64 zmm k k
|
|
// VCMPPD.BCST imm8 m64 zmm k
|
|
func VCMPPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCMPPD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VCMPPD_SAE: Compare Packed Double-Precision Floating-Point Values (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCMPPD.SAE imm8 zmm zmm k k
|
|
// VCMPPD.SAE imm8 zmm zmm k
|
|
func VCMPPD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCMPPD.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VCMPPS: Compare Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCMPPS imm8 m128 xmm xmm
|
|
// VCMPPS imm8 m256 ymm ymm
|
|
// VCMPPS imm8 xmm xmm xmm
|
|
// VCMPPS imm8 ymm ymm ymm
|
|
// VCMPPS imm8 m128 xmm k k
|
|
// VCMPPS imm8 m128 xmm k
|
|
// VCMPPS imm8 m256 ymm k k
|
|
// VCMPPS imm8 m256 ymm k
|
|
// VCMPPS imm8 xmm xmm k k
|
|
// VCMPPS imm8 xmm xmm k
|
|
// VCMPPS imm8 ymm ymm k k
|
|
// VCMPPS imm8 ymm ymm k
|
|
// VCMPPS imm8 m512 zmm k k
|
|
// VCMPPS imm8 m512 zmm k
|
|
// VCMPPS imm8 zmm zmm k k
|
|
// VCMPPS imm8 zmm zmm k
|
|
func VCMPPS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCMPPS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VCMPPS_BCST: Compare Packed Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCMPPS.BCST imm8 m32 xmm k k
|
|
// VCMPPS.BCST imm8 m32 xmm k
|
|
// VCMPPS.BCST imm8 m32 ymm k k
|
|
// VCMPPS.BCST imm8 m32 ymm k
|
|
// VCMPPS.BCST imm8 m32 zmm k k
|
|
// VCMPPS.BCST imm8 m32 zmm k
|
|
func VCMPPS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCMPPS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VCMPPS_SAE: Compare Packed Single-Precision Floating-Point Values (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCMPPS.SAE imm8 zmm zmm k k
|
|
// VCMPPS.SAE imm8 zmm zmm k
|
|
func VCMPPS_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCMPPS.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VCMPSD: Compare Scalar Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCMPSD imm8 m64 xmm xmm
|
|
// VCMPSD imm8 xmm xmm xmm
|
|
// VCMPSD imm8 m64 xmm k k
|
|
// VCMPSD imm8 m64 xmm k
|
|
// VCMPSD imm8 xmm xmm k k
|
|
// VCMPSD imm8 xmm xmm k
|
|
func VCMPSD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCMPSD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VCMPSD_SAE: Compare Scalar Double-Precision Floating-Point Values (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCMPSD.SAE imm8 xmm xmm k k
|
|
// VCMPSD.SAE imm8 xmm xmm k
|
|
func VCMPSD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCMPSD.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VCMPSS: Compare Scalar Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCMPSS imm8 m32 xmm xmm
|
|
// VCMPSS imm8 xmm xmm xmm
|
|
// VCMPSS imm8 m32 xmm k k
|
|
// VCMPSS imm8 m32 xmm k
|
|
// VCMPSS imm8 xmm xmm k k
|
|
// VCMPSS imm8 xmm xmm k
|
|
func VCMPSS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCMPSS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VCMPSS_SAE: Compare Scalar Single-Precision Floating-Point Values (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCMPSS.SAE imm8 xmm xmm k k
|
|
// VCMPSS.SAE imm8 xmm xmm k
|
|
func VCMPSS_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCMPSS.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VCOMISD: Compare Scalar Ordered Double-Precision Floating-Point Values and Set EFLAGS.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCOMISD m64 xmm
|
|
// VCOMISD xmm xmm
|
|
func VCOMISD(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCOMISD.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// VCOMISD_SAE: Compare Scalar Ordered Double-Precision Floating-Point Values and Set EFLAGS (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCOMISD.SAE xmm xmm
|
|
func VCOMISD_SAE(x, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCOMISD.Forms(), sffxs{sffxSAE}, []operand.Op{x, x1})
|
|
}
|
|
|
|
// VCOMISS: Compare Scalar Ordered Single-Precision Floating-Point Values and Set EFLAGS.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCOMISS m32 xmm
|
|
// VCOMISS xmm xmm
|
|
func VCOMISS(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCOMISS.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// VCOMISS_SAE: Compare Scalar Ordered Single-Precision Floating-Point Values and Set EFLAGS (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCOMISS.SAE xmm xmm
|
|
func VCOMISS_SAE(x, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCOMISS.Forms(), sffxs{sffxSAE}, []operand.Op{x, x1})
|
|
}
|
|
|
|
// VCOMPRESSPD: Store Sparse Packed Double-Precision Floating-Point Values into Dense Memory/Register.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCOMPRESSPD xmm k m128
|
|
// VCOMPRESSPD xmm k xmm
|
|
// VCOMPRESSPD xmm m128
|
|
// VCOMPRESSPD xmm xmm
|
|
// VCOMPRESSPD ymm k m256
|
|
// VCOMPRESSPD ymm k ymm
|
|
// VCOMPRESSPD ymm m256
|
|
// VCOMPRESSPD ymm ymm
|
|
// VCOMPRESSPD zmm k m512
|
|
// VCOMPRESSPD zmm k zmm
|
|
// VCOMPRESSPD zmm m512
|
|
// VCOMPRESSPD zmm zmm
|
|
func VCOMPRESSPD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCOMPRESSPD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VCOMPRESSPD_Z: Store Sparse Packed Double-Precision Floating-Point Values into Dense Memory/Register (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCOMPRESSPD.Z xmm k m128
|
|
// VCOMPRESSPD.Z xmm k xmm
|
|
// VCOMPRESSPD.Z ymm k m256
|
|
// VCOMPRESSPD.Z ymm k ymm
|
|
// VCOMPRESSPD.Z zmm k m512
|
|
// VCOMPRESSPD.Z zmm k zmm
|
|
func VCOMPRESSPD_Z(xyz, k, mxyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCOMPRESSPD.Forms(), sffxs{sffxZ}, []operand.Op{xyz, k, mxyz})
|
|
}
|
|
|
|
// VCOMPRESSPS: Store Sparse Packed Single-Precision Floating-Point Values into Dense Memory/Register.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCOMPRESSPS xmm k m128
|
|
// VCOMPRESSPS xmm k xmm
|
|
// VCOMPRESSPS xmm m128
|
|
// VCOMPRESSPS xmm xmm
|
|
// VCOMPRESSPS ymm k m256
|
|
// VCOMPRESSPS ymm k ymm
|
|
// VCOMPRESSPS ymm m256
|
|
// VCOMPRESSPS ymm ymm
|
|
// VCOMPRESSPS zmm k m512
|
|
// VCOMPRESSPS zmm k zmm
|
|
// VCOMPRESSPS zmm m512
|
|
// VCOMPRESSPS zmm zmm
|
|
func VCOMPRESSPS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCOMPRESSPS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VCOMPRESSPS_Z: Store Sparse Packed Single-Precision Floating-Point Values into Dense Memory/Register (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCOMPRESSPS.Z xmm k m128
|
|
// VCOMPRESSPS.Z xmm k xmm
|
|
// VCOMPRESSPS.Z ymm k m256
|
|
// VCOMPRESSPS.Z ymm k ymm
|
|
// VCOMPRESSPS.Z zmm k m512
|
|
// VCOMPRESSPS.Z zmm k zmm
|
|
func VCOMPRESSPS_Z(xyz, k, mxyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCOMPRESSPS.Forms(), sffxs{sffxZ}, []operand.Op{xyz, k, mxyz})
|
|
}
|
|
|
|
// VCVTDQ2PD: Convert Packed Dword Integers to Packed Double-Precision FP Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTDQ2PD m128 ymm
|
|
// VCVTDQ2PD m64 xmm
|
|
// VCVTDQ2PD xmm xmm
|
|
// VCVTDQ2PD xmm ymm
|
|
// VCVTDQ2PD m128 k ymm
|
|
// VCVTDQ2PD m64 k xmm
|
|
// VCVTDQ2PD xmm k xmm
|
|
// VCVTDQ2PD xmm k ymm
|
|
// VCVTDQ2PD m256 k zmm
|
|
// VCVTDQ2PD m256 zmm
|
|
// VCVTDQ2PD ymm k zmm
|
|
// VCVTDQ2PD ymm zmm
|
|
func VCVTDQ2PD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTDQ2PD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VCVTDQ2PD_BCST: Convert Packed Dword Integers to Packed Double-Precision FP Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTDQ2PD.BCST m32 k xmm
|
|
// VCVTDQ2PD.BCST m32 k ymm
|
|
// VCVTDQ2PD.BCST m32 xmm
|
|
// VCVTDQ2PD.BCST m32 ymm
|
|
// VCVTDQ2PD.BCST m32 k zmm
|
|
// VCVTDQ2PD.BCST m32 zmm
|
|
func VCVTDQ2PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTDQ2PD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VCVTDQ2PD_BCST_Z: Convert Packed Dword Integers to Packed Double-Precision FP Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTDQ2PD.BCST.Z m32 k xmm
|
|
// VCVTDQ2PD.BCST.Z m32 k ymm
|
|
// VCVTDQ2PD.BCST.Z m32 k zmm
|
|
func VCVTDQ2PD_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTDQ2PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz})
|
|
}
|
|
|
|
// VCVTDQ2PD_Z: Convert Packed Dword Integers to Packed Double-Precision FP Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTDQ2PD.Z m128 k ymm
|
|
// VCVTDQ2PD.Z m64 k xmm
|
|
// VCVTDQ2PD.Z xmm k xmm
|
|
// VCVTDQ2PD.Z xmm k ymm
|
|
// VCVTDQ2PD.Z m256 k zmm
|
|
// VCVTDQ2PD.Z ymm k zmm
|
|
func VCVTDQ2PD_Z(mxy, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTDQ2PD.Forms(), sffxs{sffxZ}, []operand.Op{mxy, k, xyz})
|
|
}
|
|
|
|
// VCVTDQ2PS: Convert Packed Dword Integers to Packed Single-Precision FP Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTDQ2PS m128 xmm
|
|
// VCVTDQ2PS m256 ymm
|
|
// VCVTDQ2PS xmm xmm
|
|
// VCVTDQ2PS ymm ymm
|
|
// VCVTDQ2PS m128 k xmm
|
|
// VCVTDQ2PS m256 k ymm
|
|
// VCVTDQ2PS xmm k xmm
|
|
// VCVTDQ2PS ymm k ymm
|
|
// VCVTDQ2PS m512 k zmm
|
|
// VCVTDQ2PS m512 zmm
|
|
// VCVTDQ2PS zmm k zmm
|
|
// VCVTDQ2PS zmm zmm
|
|
func VCVTDQ2PS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTDQ2PS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VCVTDQ2PS_BCST: Convert Packed Dword Integers to Packed Single-Precision FP Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTDQ2PS.BCST m32 k xmm
|
|
// VCVTDQ2PS.BCST m32 k ymm
|
|
// VCVTDQ2PS.BCST m32 xmm
|
|
// VCVTDQ2PS.BCST m32 ymm
|
|
// VCVTDQ2PS.BCST m32 k zmm
|
|
// VCVTDQ2PS.BCST m32 zmm
|
|
func VCVTDQ2PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTDQ2PS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VCVTDQ2PS_BCST_Z: Convert Packed Dword Integers to Packed Single-Precision FP Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTDQ2PS.BCST.Z m32 k xmm
|
|
// VCVTDQ2PS.BCST.Z m32 k ymm
|
|
// VCVTDQ2PS.BCST.Z m32 k zmm
|
|
func VCVTDQ2PS_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTDQ2PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz})
|
|
}
|
|
|
|
// VCVTDQ2PS_RD_SAE: Convert Packed Dword Integers to Packed Single-Precision FP Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTDQ2PS.RD_SAE zmm k zmm
|
|
// VCVTDQ2PS.RD_SAE zmm zmm
|
|
func VCVTDQ2PS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTDQ2PS.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VCVTDQ2PS_RD_SAE_Z: Convert Packed Dword Integers to Packed Single-Precision FP Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTDQ2PS.RD_SAE.Z zmm k zmm
|
|
func VCVTDQ2PS_RD_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTDQ2PS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VCVTDQ2PS_RN_SAE: Convert Packed Dword Integers to Packed Single-Precision FP Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTDQ2PS.RN_SAE zmm k zmm
|
|
// VCVTDQ2PS.RN_SAE zmm zmm
|
|
func VCVTDQ2PS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTDQ2PS.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VCVTDQ2PS_RN_SAE_Z: Convert Packed Dword Integers to Packed Single-Precision FP Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTDQ2PS.RN_SAE.Z zmm k zmm
|
|
func VCVTDQ2PS_RN_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTDQ2PS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VCVTDQ2PS_RU_SAE: Convert Packed Dword Integers to Packed Single-Precision FP Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTDQ2PS.RU_SAE zmm k zmm
|
|
// VCVTDQ2PS.RU_SAE zmm zmm
|
|
func VCVTDQ2PS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTDQ2PS.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VCVTDQ2PS_RU_SAE_Z: Convert Packed Dword Integers to Packed Single-Precision FP Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTDQ2PS.RU_SAE.Z zmm k zmm
|
|
func VCVTDQ2PS_RU_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTDQ2PS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VCVTDQ2PS_RZ_SAE: Convert Packed Dword Integers to Packed Single-Precision FP Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTDQ2PS.RZ_SAE zmm k zmm
|
|
// VCVTDQ2PS.RZ_SAE zmm zmm
|
|
func VCVTDQ2PS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTDQ2PS.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VCVTDQ2PS_RZ_SAE_Z: Convert Packed Dword Integers to Packed Single-Precision FP Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTDQ2PS.RZ_SAE.Z zmm k zmm
|
|
func VCVTDQ2PS_RZ_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTDQ2PS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VCVTDQ2PS_Z: Convert Packed Dword Integers to Packed Single-Precision FP Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTDQ2PS.Z m128 k xmm
|
|
// VCVTDQ2PS.Z m256 k ymm
|
|
// VCVTDQ2PS.Z xmm k xmm
|
|
// VCVTDQ2PS.Z ymm k ymm
|
|
// VCVTDQ2PS.Z m512 k zmm
|
|
// VCVTDQ2PS.Z zmm k zmm
|
|
func VCVTDQ2PS_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTDQ2PS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz})
|
|
}
|
|
|
|
// VCVTPD2DQ: Convert Packed Double-Precision FP Values to Packed Dword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2DQ m512 k ymm
|
|
// VCVTPD2DQ m512 ymm
|
|
// VCVTPD2DQ zmm k ymm
|
|
// VCVTPD2DQ zmm ymm
|
|
func VCVTPD2DQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2DQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VCVTPD2DQX: Convert Packed Double-Precision FP Values to Packed Dword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2DQX m128 xmm
|
|
// VCVTPD2DQX xmm xmm
|
|
// VCVTPD2DQX m128 k xmm
|
|
// VCVTPD2DQX xmm k xmm
|
|
func VCVTPD2DQX(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2DQX.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VCVTPD2DQX_BCST: Convert Packed Double-Precision FP Values to Packed Dword Integers (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2DQX.BCST m64 k xmm
|
|
// VCVTPD2DQX.BCST m64 xmm
|
|
func VCVTPD2DQX_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2DQX.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VCVTPD2DQX_BCST_Z: Convert Packed Double-Precision FP Values to Packed Dword Integers (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2DQX.BCST.Z m64 k xmm
|
|
func VCVTPD2DQX_BCST_Z(m, k, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2DQX.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, x})
|
|
}
|
|
|
|
// VCVTPD2DQX_Z: Convert Packed Double-Precision FP Values to Packed Dword Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2DQX.Z m128 k xmm
|
|
// VCVTPD2DQX.Z xmm k xmm
|
|
func VCVTPD2DQX_Z(mx, k, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2DQX.Forms(), sffxs{sffxZ}, []operand.Op{mx, k, x})
|
|
}
|
|
|
|
// VCVTPD2DQY: Convert Packed Double-Precision FP Values to Packed Dword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2DQY m256 xmm
|
|
// VCVTPD2DQY ymm xmm
|
|
// VCVTPD2DQY m256 k xmm
|
|
// VCVTPD2DQY ymm k xmm
|
|
func VCVTPD2DQY(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2DQY.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VCVTPD2DQY_BCST: Convert Packed Double-Precision FP Values to Packed Dword Integers (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2DQY.BCST m64 k xmm
|
|
// VCVTPD2DQY.BCST m64 xmm
|
|
func VCVTPD2DQY_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2DQY.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VCVTPD2DQY_BCST_Z: Convert Packed Double-Precision FP Values to Packed Dword Integers (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2DQY.BCST.Z m64 k xmm
|
|
func VCVTPD2DQY_BCST_Z(m, k, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2DQY.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, x})
|
|
}
|
|
|
|
// VCVTPD2DQY_Z: Convert Packed Double-Precision FP Values to Packed Dword Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2DQY.Z m256 k xmm
|
|
// VCVTPD2DQY.Z ymm k xmm
|
|
func VCVTPD2DQY_Z(my, k, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2DQY.Forms(), sffxs{sffxZ}, []operand.Op{my, k, x})
|
|
}
|
|
|
|
// VCVTPD2DQ_BCST: Convert Packed Double-Precision FP Values to Packed Dword Integers (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2DQ.BCST m64 k ymm
|
|
// VCVTPD2DQ.BCST m64 ymm
|
|
func VCVTPD2DQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2DQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VCVTPD2DQ_BCST_Z: Convert Packed Double-Precision FP Values to Packed Dword Integers (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2DQ.BCST.Z m64 k ymm
|
|
func VCVTPD2DQ_BCST_Z(m, k, y operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2DQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, y})
|
|
}
|
|
|
|
// VCVTPD2DQ_RD_SAE: Convert Packed Double-Precision FP Values to Packed Dword Integers (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2DQ.RD_SAE zmm k ymm
|
|
// VCVTPD2DQ.RD_SAE zmm ymm
|
|
func VCVTPD2DQ_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2DQ.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VCVTPD2DQ_RD_SAE_Z: Convert Packed Double-Precision FP Values to Packed Dword Integers (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2DQ.RD_SAE.Z zmm k ymm
|
|
func VCVTPD2DQ_RD_SAE_Z(z, k, y operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2DQ.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, k, y})
|
|
}
|
|
|
|
// VCVTPD2DQ_RN_SAE: Convert Packed Double-Precision FP Values to Packed Dword Integers (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2DQ.RN_SAE zmm k ymm
|
|
// VCVTPD2DQ.RN_SAE zmm ymm
|
|
func VCVTPD2DQ_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2DQ.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VCVTPD2DQ_RN_SAE_Z: Convert Packed Double-Precision FP Values to Packed Dword Integers (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2DQ.RN_SAE.Z zmm k ymm
|
|
func VCVTPD2DQ_RN_SAE_Z(z, k, y operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2DQ.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, k, y})
|
|
}
|
|
|
|
// VCVTPD2DQ_RU_SAE: Convert Packed Double-Precision FP Values to Packed Dword Integers (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2DQ.RU_SAE zmm k ymm
|
|
// VCVTPD2DQ.RU_SAE zmm ymm
|
|
func VCVTPD2DQ_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2DQ.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VCVTPD2DQ_RU_SAE_Z: Convert Packed Double-Precision FP Values to Packed Dword Integers (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2DQ.RU_SAE.Z zmm k ymm
|
|
func VCVTPD2DQ_RU_SAE_Z(z, k, y operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2DQ.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, k, y})
|
|
}
|
|
|
|
// VCVTPD2DQ_RZ_SAE: Convert Packed Double-Precision FP Values to Packed Dword Integers (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2DQ.RZ_SAE zmm k ymm
|
|
// VCVTPD2DQ.RZ_SAE zmm ymm
|
|
func VCVTPD2DQ_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2DQ.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VCVTPD2DQ_RZ_SAE_Z: Convert Packed Double-Precision FP Values to Packed Dword Integers (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2DQ.RZ_SAE.Z zmm k ymm
|
|
func VCVTPD2DQ_RZ_SAE_Z(z, k, y operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2DQ.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, k, y})
|
|
}
|
|
|
|
// VCVTPD2DQ_Z: Convert Packed Double-Precision FP Values to Packed Dword Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2DQ.Z m512 k ymm
|
|
// VCVTPD2DQ.Z zmm k ymm
|
|
func VCVTPD2DQ_Z(mz, k, y operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2DQ.Forms(), sffxs{sffxZ}, []operand.Op{mz, k, y})
|
|
}
|
|
|
|
// VCVTPD2PS: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2PS m512 k ymm
|
|
// VCVTPD2PS m512 ymm
|
|
// VCVTPD2PS zmm k ymm
|
|
// VCVTPD2PS zmm ymm
|
|
func VCVTPD2PS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2PS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VCVTPD2PSX: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2PSX m128 xmm
|
|
// VCVTPD2PSX xmm xmm
|
|
// VCVTPD2PSX m128 k xmm
|
|
// VCVTPD2PSX xmm k xmm
|
|
func VCVTPD2PSX(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2PSX.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VCVTPD2PSX_BCST: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2PSX.BCST m64 k xmm
|
|
// VCVTPD2PSX.BCST m64 xmm
|
|
func VCVTPD2PSX_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2PSX.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VCVTPD2PSX_BCST_Z: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2PSX.BCST.Z m64 k xmm
|
|
func VCVTPD2PSX_BCST_Z(m, k, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2PSX.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, x})
|
|
}
|
|
|
|
// VCVTPD2PSX_Z: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2PSX.Z m128 k xmm
|
|
// VCVTPD2PSX.Z xmm k xmm
|
|
func VCVTPD2PSX_Z(mx, k, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2PSX.Forms(), sffxs{sffxZ}, []operand.Op{mx, k, x})
|
|
}
|
|
|
|
// VCVTPD2PSY: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2PSY m256 xmm
|
|
// VCVTPD2PSY ymm xmm
|
|
// VCVTPD2PSY m256 k xmm
|
|
// VCVTPD2PSY ymm k xmm
|
|
func VCVTPD2PSY(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2PSY.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VCVTPD2PSY_BCST: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2PSY.BCST m64 k xmm
|
|
// VCVTPD2PSY.BCST m64 xmm
|
|
func VCVTPD2PSY_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2PSY.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VCVTPD2PSY_BCST_Z: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2PSY.BCST.Z m64 k xmm
|
|
func VCVTPD2PSY_BCST_Z(m, k, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2PSY.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, x})
|
|
}
|
|
|
|
// VCVTPD2PSY_Z: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2PSY.Z m256 k xmm
|
|
// VCVTPD2PSY.Z ymm k xmm
|
|
func VCVTPD2PSY_Z(my, k, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2PSY.Forms(), sffxs{sffxZ}, []operand.Op{my, k, x})
|
|
}
|
|
|
|
// VCVTPD2PS_BCST: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2PS.BCST m64 k ymm
|
|
// VCVTPD2PS.BCST m64 ymm
|
|
func VCVTPD2PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2PS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VCVTPD2PS_BCST_Z: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2PS.BCST.Z m64 k ymm
|
|
func VCVTPD2PS_BCST_Z(m, k, y operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, y})
|
|
}
|
|
|
|
// VCVTPD2PS_RD_SAE: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2PS.RD_SAE zmm k ymm
|
|
// VCVTPD2PS.RD_SAE zmm ymm
|
|
func VCVTPD2PS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2PS.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VCVTPD2PS_RD_SAE_Z: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2PS.RD_SAE.Z zmm k ymm
|
|
func VCVTPD2PS_RD_SAE_Z(z, k, y operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2PS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, k, y})
|
|
}
|
|
|
|
// VCVTPD2PS_RN_SAE: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2PS.RN_SAE zmm k ymm
|
|
// VCVTPD2PS.RN_SAE zmm ymm
|
|
func VCVTPD2PS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2PS.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VCVTPD2PS_RN_SAE_Z: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2PS.RN_SAE.Z zmm k ymm
|
|
func VCVTPD2PS_RN_SAE_Z(z, k, y operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2PS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, k, y})
|
|
}
|
|
|
|
// VCVTPD2PS_RU_SAE: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2PS.RU_SAE zmm k ymm
|
|
// VCVTPD2PS.RU_SAE zmm ymm
|
|
func VCVTPD2PS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2PS.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VCVTPD2PS_RU_SAE_Z: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2PS.RU_SAE.Z zmm k ymm
|
|
func VCVTPD2PS_RU_SAE_Z(z, k, y operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2PS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, k, y})
|
|
}
|
|
|
|
// VCVTPD2PS_RZ_SAE: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2PS.RZ_SAE zmm k ymm
|
|
// VCVTPD2PS.RZ_SAE zmm ymm
|
|
func VCVTPD2PS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2PS.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VCVTPD2PS_RZ_SAE_Z: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2PS.RZ_SAE.Z zmm k ymm
|
|
func VCVTPD2PS_RZ_SAE_Z(z, k, y operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2PS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, k, y})
|
|
}
|
|
|
|
// VCVTPD2PS_Z: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2PS.Z m512 k ymm
|
|
// VCVTPD2PS.Z zmm k ymm
|
|
func VCVTPD2PS_Z(mz, k, y operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2PS.Forms(), sffxs{sffxZ}, []operand.Op{mz, k, y})
|
|
}
|
|
|
|
// VCVTPD2QQ: Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2QQ m128 k xmm
|
|
// VCVTPD2QQ m128 xmm
|
|
// VCVTPD2QQ m256 k ymm
|
|
// VCVTPD2QQ m256 ymm
|
|
// VCVTPD2QQ xmm k xmm
|
|
// VCVTPD2QQ xmm xmm
|
|
// VCVTPD2QQ ymm k ymm
|
|
// VCVTPD2QQ ymm ymm
|
|
// VCVTPD2QQ m512 k zmm
|
|
// VCVTPD2QQ m512 zmm
|
|
// VCVTPD2QQ zmm k zmm
|
|
// VCVTPD2QQ zmm zmm
|
|
func VCVTPD2QQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2QQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VCVTPD2QQ_BCST: Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2QQ.BCST m64 k xmm
|
|
// VCVTPD2QQ.BCST m64 k ymm
|
|
// VCVTPD2QQ.BCST m64 xmm
|
|
// VCVTPD2QQ.BCST m64 ymm
|
|
// VCVTPD2QQ.BCST m64 k zmm
|
|
// VCVTPD2QQ.BCST m64 zmm
|
|
func VCVTPD2QQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2QQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VCVTPD2QQ_BCST_Z: Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2QQ.BCST.Z m64 k xmm
|
|
// VCVTPD2QQ.BCST.Z m64 k ymm
|
|
// VCVTPD2QQ.BCST.Z m64 k zmm
|
|
func VCVTPD2QQ_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2QQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz})
|
|
}
|
|
|
|
// VCVTPD2QQ_RD_SAE: Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2QQ.RD_SAE zmm k zmm
|
|
// VCVTPD2QQ.RD_SAE zmm zmm
|
|
func VCVTPD2QQ_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2QQ.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VCVTPD2QQ_RD_SAE_Z: Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2QQ.RD_SAE.Z zmm k zmm
|
|
func VCVTPD2QQ_RD_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2QQ.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VCVTPD2QQ_RN_SAE: Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2QQ.RN_SAE zmm k zmm
|
|
// VCVTPD2QQ.RN_SAE zmm zmm
|
|
func VCVTPD2QQ_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2QQ.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VCVTPD2QQ_RN_SAE_Z: Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2QQ.RN_SAE.Z zmm k zmm
|
|
func VCVTPD2QQ_RN_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2QQ.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VCVTPD2QQ_RU_SAE: Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2QQ.RU_SAE zmm k zmm
|
|
// VCVTPD2QQ.RU_SAE zmm zmm
|
|
func VCVTPD2QQ_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2QQ.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VCVTPD2QQ_RU_SAE_Z: Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2QQ.RU_SAE.Z zmm k zmm
|
|
func VCVTPD2QQ_RU_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2QQ.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VCVTPD2QQ_RZ_SAE: Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2QQ.RZ_SAE zmm k zmm
|
|
// VCVTPD2QQ.RZ_SAE zmm zmm
|
|
func VCVTPD2QQ_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2QQ.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VCVTPD2QQ_RZ_SAE_Z: Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2QQ.RZ_SAE.Z zmm k zmm
|
|
func VCVTPD2QQ_RZ_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2QQ.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VCVTPD2QQ_Z: Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2QQ.Z m128 k xmm
|
|
// VCVTPD2QQ.Z m256 k ymm
|
|
// VCVTPD2QQ.Z xmm k xmm
|
|
// VCVTPD2QQ.Z ymm k ymm
|
|
// VCVTPD2QQ.Z m512 k zmm
|
|
// VCVTPD2QQ.Z zmm k zmm
|
|
func VCVTPD2QQ_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2QQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz})
|
|
}
|
|
|
|
// VCVTPD2UDQ: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2UDQ m512 k ymm
|
|
// VCVTPD2UDQ m512 ymm
|
|
// VCVTPD2UDQ zmm k ymm
|
|
// VCVTPD2UDQ zmm ymm
|
|
func VCVTPD2UDQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2UDQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VCVTPD2UDQX: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2UDQX m128 k xmm
|
|
// VCVTPD2UDQX m128 xmm
|
|
// VCVTPD2UDQX xmm k xmm
|
|
// VCVTPD2UDQX xmm xmm
|
|
func VCVTPD2UDQX(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2UDQX.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VCVTPD2UDQX_BCST: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2UDQX.BCST m64 k xmm
|
|
// VCVTPD2UDQX.BCST m64 xmm
|
|
func VCVTPD2UDQX_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2UDQX.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VCVTPD2UDQX_BCST_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2UDQX.BCST.Z m64 k xmm
|
|
func VCVTPD2UDQX_BCST_Z(m, k, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2UDQX.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, x})
|
|
}
|
|
|
|
// VCVTPD2UDQX_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2UDQX.Z m128 k xmm
|
|
// VCVTPD2UDQX.Z xmm k xmm
|
|
func VCVTPD2UDQX_Z(mx, k, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2UDQX.Forms(), sffxs{sffxZ}, []operand.Op{mx, k, x})
|
|
}
|
|
|
|
// VCVTPD2UDQY: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2UDQY m256 k xmm
|
|
// VCVTPD2UDQY m256 xmm
|
|
// VCVTPD2UDQY ymm k xmm
|
|
// VCVTPD2UDQY ymm xmm
|
|
func VCVTPD2UDQY(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2UDQY.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VCVTPD2UDQY_BCST: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2UDQY.BCST m64 k xmm
|
|
// VCVTPD2UDQY.BCST m64 xmm
|
|
func VCVTPD2UDQY_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2UDQY.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VCVTPD2UDQY_BCST_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2UDQY.BCST.Z m64 k xmm
|
|
func VCVTPD2UDQY_BCST_Z(m, k, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2UDQY.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, x})
|
|
}
|
|
|
|
// VCVTPD2UDQY_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2UDQY.Z m256 k xmm
|
|
// VCVTPD2UDQY.Z ymm k xmm
|
|
func VCVTPD2UDQY_Z(my, k, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2UDQY.Forms(), sffxs{sffxZ}, []operand.Op{my, k, x})
|
|
}
|
|
|
|
// VCVTPD2UDQ_BCST: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2UDQ.BCST m64 k ymm
|
|
// VCVTPD2UDQ.BCST m64 ymm
|
|
func VCVTPD2UDQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2UDQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VCVTPD2UDQ_BCST_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2UDQ.BCST.Z m64 k ymm
|
|
func VCVTPD2UDQ_BCST_Z(m, k, y operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2UDQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, y})
|
|
}
|
|
|
|
// VCVTPD2UDQ_RD_SAE: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2UDQ.RD_SAE zmm k ymm
|
|
// VCVTPD2UDQ.RD_SAE zmm ymm
|
|
func VCVTPD2UDQ_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2UDQ.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VCVTPD2UDQ_RD_SAE_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2UDQ.RD_SAE.Z zmm k ymm
|
|
func VCVTPD2UDQ_RD_SAE_Z(z, k, y operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2UDQ.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, k, y})
|
|
}
|
|
|
|
// VCVTPD2UDQ_RN_SAE: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2UDQ.RN_SAE zmm k ymm
|
|
// VCVTPD2UDQ.RN_SAE zmm ymm
|
|
func VCVTPD2UDQ_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2UDQ.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VCVTPD2UDQ_RN_SAE_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2UDQ.RN_SAE.Z zmm k ymm
|
|
func VCVTPD2UDQ_RN_SAE_Z(z, k, y operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2UDQ.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, k, y})
|
|
}
|
|
|
|
// VCVTPD2UDQ_RU_SAE: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2UDQ.RU_SAE zmm k ymm
|
|
// VCVTPD2UDQ.RU_SAE zmm ymm
|
|
func VCVTPD2UDQ_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2UDQ.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VCVTPD2UDQ_RU_SAE_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2UDQ.RU_SAE.Z zmm k ymm
|
|
func VCVTPD2UDQ_RU_SAE_Z(z, k, y operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2UDQ.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, k, y})
|
|
}
|
|
|
|
// VCVTPD2UDQ_RZ_SAE: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2UDQ.RZ_SAE zmm k ymm
|
|
// VCVTPD2UDQ.RZ_SAE zmm ymm
|
|
func VCVTPD2UDQ_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2UDQ.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VCVTPD2UDQ_RZ_SAE_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2UDQ.RZ_SAE.Z zmm k ymm
|
|
func VCVTPD2UDQ_RZ_SAE_Z(z, k, y operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2UDQ.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, k, y})
|
|
}
|
|
|
|
// VCVTPD2UDQ_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2UDQ.Z m512 k ymm
|
|
// VCVTPD2UDQ.Z zmm k ymm
|
|
func VCVTPD2UDQ_Z(mz, k, y operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2UDQ.Forms(), sffxs{sffxZ}, []operand.Op{mz, k, y})
|
|
}
|
|
|
|
// VCVTPD2UQQ: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2UQQ m128 k xmm
|
|
// VCVTPD2UQQ m128 xmm
|
|
// VCVTPD2UQQ m256 k ymm
|
|
// VCVTPD2UQQ m256 ymm
|
|
// VCVTPD2UQQ xmm k xmm
|
|
// VCVTPD2UQQ xmm xmm
|
|
// VCVTPD2UQQ ymm k ymm
|
|
// VCVTPD2UQQ ymm ymm
|
|
// VCVTPD2UQQ m512 k zmm
|
|
// VCVTPD2UQQ m512 zmm
|
|
// VCVTPD2UQQ zmm k zmm
|
|
// VCVTPD2UQQ zmm zmm
|
|
func VCVTPD2UQQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2UQQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VCVTPD2UQQ_BCST: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2UQQ.BCST m64 k xmm
|
|
// VCVTPD2UQQ.BCST m64 k ymm
|
|
// VCVTPD2UQQ.BCST m64 xmm
|
|
// VCVTPD2UQQ.BCST m64 ymm
|
|
// VCVTPD2UQQ.BCST m64 k zmm
|
|
// VCVTPD2UQQ.BCST m64 zmm
|
|
func VCVTPD2UQQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2UQQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VCVTPD2UQQ_BCST_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2UQQ.BCST.Z m64 k xmm
|
|
// VCVTPD2UQQ.BCST.Z m64 k ymm
|
|
// VCVTPD2UQQ.BCST.Z m64 k zmm
|
|
func VCVTPD2UQQ_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2UQQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz})
|
|
}
|
|
|
|
// VCVTPD2UQQ_RD_SAE: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2UQQ.RD_SAE zmm k zmm
|
|
// VCVTPD2UQQ.RD_SAE zmm zmm
|
|
func VCVTPD2UQQ_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2UQQ.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VCVTPD2UQQ_RD_SAE_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2UQQ.RD_SAE.Z zmm k zmm
|
|
func VCVTPD2UQQ_RD_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2UQQ.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VCVTPD2UQQ_RN_SAE: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2UQQ.RN_SAE zmm k zmm
|
|
// VCVTPD2UQQ.RN_SAE zmm zmm
|
|
func VCVTPD2UQQ_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2UQQ.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VCVTPD2UQQ_RN_SAE_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2UQQ.RN_SAE.Z zmm k zmm
|
|
func VCVTPD2UQQ_RN_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2UQQ.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VCVTPD2UQQ_RU_SAE: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2UQQ.RU_SAE zmm k zmm
|
|
// VCVTPD2UQQ.RU_SAE zmm zmm
|
|
func VCVTPD2UQQ_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2UQQ.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VCVTPD2UQQ_RU_SAE_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2UQQ.RU_SAE.Z zmm k zmm
|
|
func VCVTPD2UQQ_RU_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2UQQ.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VCVTPD2UQQ_RZ_SAE: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2UQQ.RZ_SAE zmm k zmm
|
|
// VCVTPD2UQQ.RZ_SAE zmm zmm
|
|
func VCVTPD2UQQ_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2UQQ.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VCVTPD2UQQ_RZ_SAE_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2UQQ.RZ_SAE.Z zmm k zmm
|
|
func VCVTPD2UQQ_RZ_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2UQQ.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VCVTPD2UQQ_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPD2UQQ.Z m128 k xmm
|
|
// VCVTPD2UQQ.Z m256 k ymm
|
|
// VCVTPD2UQQ.Z xmm k xmm
|
|
// VCVTPD2UQQ.Z ymm k ymm
|
|
// VCVTPD2UQQ.Z m512 k zmm
|
|
// VCVTPD2UQQ.Z zmm k zmm
|
|
func VCVTPD2UQQ_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPD2UQQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz})
|
|
}
|
|
|
|
// VCVTPH2PS: Convert Half-Precision FP Values to Single-Precision FP Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPH2PS m128 ymm
|
|
// VCVTPH2PS m64 xmm
|
|
// VCVTPH2PS xmm xmm
|
|
// VCVTPH2PS xmm ymm
|
|
// VCVTPH2PS m128 k ymm
|
|
// VCVTPH2PS m64 k xmm
|
|
// VCVTPH2PS xmm k xmm
|
|
// VCVTPH2PS xmm k ymm
|
|
// VCVTPH2PS m256 k zmm
|
|
// VCVTPH2PS m256 zmm
|
|
// VCVTPH2PS ymm k zmm
|
|
// VCVTPH2PS ymm zmm
|
|
func VCVTPH2PS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPH2PS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VCVTPH2PS_SAE: Convert Half-Precision FP Values to Single-Precision FP Values (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPH2PS.SAE ymm k zmm
|
|
// VCVTPH2PS.SAE ymm zmm
|
|
func VCVTPH2PS_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPH2PS.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VCVTPH2PS_SAE_Z: Convert Half-Precision FP Values to Single-Precision FP Values (Suppress All Exceptions, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPH2PS.SAE.Z ymm k zmm
|
|
func VCVTPH2PS_SAE_Z(y, k, z operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPH2PS.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{y, k, z})
|
|
}
|
|
|
|
// VCVTPH2PS_Z: Convert Half-Precision FP Values to Single-Precision FP Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPH2PS.Z m128 k ymm
|
|
// VCVTPH2PS.Z m64 k xmm
|
|
// VCVTPH2PS.Z xmm k xmm
|
|
// VCVTPH2PS.Z xmm k ymm
|
|
// VCVTPH2PS.Z m256 k zmm
|
|
// VCVTPH2PS.Z ymm k zmm
|
|
func VCVTPH2PS_Z(mxy, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPH2PS.Forms(), sffxs{sffxZ}, []operand.Op{mxy, k, xyz})
|
|
}
|
|
|
|
// VCVTPS2DQ: Convert Packed Single-Precision FP Values to Packed Dword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2DQ m128 xmm
|
|
// VCVTPS2DQ m256 ymm
|
|
// VCVTPS2DQ xmm xmm
|
|
// VCVTPS2DQ ymm ymm
|
|
// VCVTPS2DQ m128 k xmm
|
|
// VCVTPS2DQ m256 k ymm
|
|
// VCVTPS2DQ xmm k xmm
|
|
// VCVTPS2DQ ymm k ymm
|
|
// VCVTPS2DQ m512 k zmm
|
|
// VCVTPS2DQ m512 zmm
|
|
// VCVTPS2DQ zmm k zmm
|
|
// VCVTPS2DQ zmm zmm
|
|
func VCVTPS2DQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2DQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VCVTPS2DQ_BCST: Convert Packed Single-Precision FP Values to Packed Dword Integers (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2DQ.BCST m32 k xmm
|
|
// VCVTPS2DQ.BCST m32 k ymm
|
|
// VCVTPS2DQ.BCST m32 xmm
|
|
// VCVTPS2DQ.BCST m32 ymm
|
|
// VCVTPS2DQ.BCST m32 k zmm
|
|
// VCVTPS2DQ.BCST m32 zmm
|
|
func VCVTPS2DQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2DQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VCVTPS2DQ_BCST_Z: Convert Packed Single-Precision FP Values to Packed Dword Integers (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2DQ.BCST.Z m32 k xmm
|
|
// VCVTPS2DQ.BCST.Z m32 k ymm
|
|
// VCVTPS2DQ.BCST.Z m32 k zmm
|
|
func VCVTPS2DQ_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2DQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz})
|
|
}
|
|
|
|
// VCVTPS2DQ_RD_SAE: Convert Packed Single-Precision FP Values to Packed Dword Integers (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2DQ.RD_SAE zmm k zmm
|
|
// VCVTPS2DQ.RD_SAE zmm zmm
|
|
func VCVTPS2DQ_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2DQ.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VCVTPS2DQ_RD_SAE_Z: Convert Packed Single-Precision FP Values to Packed Dword Integers (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2DQ.RD_SAE.Z zmm k zmm
|
|
func VCVTPS2DQ_RD_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2DQ.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VCVTPS2DQ_RN_SAE: Convert Packed Single-Precision FP Values to Packed Dword Integers (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2DQ.RN_SAE zmm k zmm
|
|
// VCVTPS2DQ.RN_SAE zmm zmm
|
|
func VCVTPS2DQ_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2DQ.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VCVTPS2DQ_RN_SAE_Z: Convert Packed Single-Precision FP Values to Packed Dword Integers (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2DQ.RN_SAE.Z zmm k zmm
|
|
func VCVTPS2DQ_RN_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2DQ.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VCVTPS2DQ_RU_SAE: Convert Packed Single-Precision FP Values to Packed Dword Integers (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2DQ.RU_SAE zmm k zmm
|
|
// VCVTPS2DQ.RU_SAE zmm zmm
|
|
func VCVTPS2DQ_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2DQ.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VCVTPS2DQ_RU_SAE_Z: Convert Packed Single-Precision FP Values to Packed Dword Integers (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2DQ.RU_SAE.Z zmm k zmm
|
|
func VCVTPS2DQ_RU_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2DQ.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VCVTPS2DQ_RZ_SAE: Convert Packed Single-Precision FP Values to Packed Dword Integers (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2DQ.RZ_SAE zmm k zmm
|
|
// VCVTPS2DQ.RZ_SAE zmm zmm
|
|
func VCVTPS2DQ_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2DQ.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VCVTPS2DQ_RZ_SAE_Z: Convert Packed Single-Precision FP Values to Packed Dword Integers (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2DQ.RZ_SAE.Z zmm k zmm
|
|
func VCVTPS2DQ_RZ_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2DQ.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VCVTPS2DQ_Z: Convert Packed Single-Precision FP Values to Packed Dword Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2DQ.Z m128 k xmm
|
|
// VCVTPS2DQ.Z m256 k ymm
|
|
// VCVTPS2DQ.Z xmm k xmm
|
|
// VCVTPS2DQ.Z ymm k ymm
|
|
// VCVTPS2DQ.Z m512 k zmm
|
|
// VCVTPS2DQ.Z zmm k zmm
|
|
func VCVTPS2DQ_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2DQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz})
|
|
}
|
|
|
|
// VCVTPS2PD: Convert Packed Single-Precision FP Values to Packed Double-Precision FP Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2PD m128 ymm
|
|
// VCVTPS2PD m64 xmm
|
|
// VCVTPS2PD xmm xmm
|
|
// VCVTPS2PD xmm ymm
|
|
// VCVTPS2PD m64 k xmm
|
|
// VCVTPS2PD xmm k xmm
|
|
// VCVTPS2PD m256 k zmm
|
|
// VCVTPS2PD m256 zmm
|
|
// VCVTPS2PD ymm k zmm
|
|
// VCVTPS2PD ymm zmm
|
|
// VCVTPS2PD m128 k ymm
|
|
// VCVTPS2PD xmm k ymm
|
|
func VCVTPS2PD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2PD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VCVTPS2PD_BCST: Convert Packed Single-Precision FP Values to Packed Double-Precision FP Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2PD.BCST m32 k xmm
|
|
// VCVTPS2PD.BCST m32 xmm
|
|
// VCVTPS2PD.BCST m32 k zmm
|
|
// VCVTPS2PD.BCST m32 zmm
|
|
// VCVTPS2PD.BCST m32 k ymm
|
|
// VCVTPS2PD.BCST m32 ymm
|
|
func VCVTPS2PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2PD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VCVTPS2PD_BCST_Z: Convert Packed Single-Precision FP Values to Packed Double-Precision FP Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2PD.BCST.Z m32 k xmm
|
|
// VCVTPS2PD.BCST.Z m32 k zmm
|
|
// VCVTPS2PD.BCST.Z m32 k ymm
|
|
func VCVTPS2PD_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz})
|
|
}
|
|
|
|
// VCVTPS2PD_SAE: Convert Packed Single-Precision FP Values to Packed Double-Precision FP Values (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2PD.SAE ymm k zmm
|
|
// VCVTPS2PD.SAE ymm zmm
|
|
func VCVTPS2PD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2PD.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VCVTPS2PD_SAE_Z: Convert Packed Single-Precision FP Values to Packed Double-Precision FP Values (Suppress All Exceptions, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2PD.SAE.Z ymm k zmm
|
|
func VCVTPS2PD_SAE_Z(y, k, z operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2PD.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{y, k, z})
|
|
}
|
|
|
|
// VCVTPS2PD_Z: Convert Packed Single-Precision FP Values to Packed Double-Precision FP Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2PD.Z m64 k xmm
|
|
// VCVTPS2PD.Z xmm k xmm
|
|
// VCVTPS2PD.Z m256 k zmm
|
|
// VCVTPS2PD.Z ymm k zmm
|
|
// VCVTPS2PD.Z m128 k ymm
|
|
// VCVTPS2PD.Z xmm k ymm
|
|
func VCVTPS2PD_Z(mxy, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2PD.Forms(), sffxs{sffxZ}, []operand.Op{mxy, k, xyz})
|
|
}
|
|
|
|
// VCVTPS2PH: Convert Single-Precision FP value to Half-Precision FP value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2PH imm8 xmm m64
|
|
// VCVTPS2PH imm8 xmm xmm
|
|
// VCVTPS2PH imm8 ymm m128
|
|
// VCVTPS2PH imm8 ymm xmm
|
|
// VCVTPS2PH imm8 xmm k m64
|
|
// VCVTPS2PH imm8 xmm k xmm
|
|
// VCVTPS2PH imm8 ymm k m128
|
|
// VCVTPS2PH imm8 ymm k xmm
|
|
// VCVTPS2PH imm8 zmm k m256
|
|
// VCVTPS2PH imm8 zmm k ymm
|
|
// VCVTPS2PH imm8 zmm m256
|
|
// VCVTPS2PH imm8 zmm ymm
|
|
func VCVTPS2PH(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2PH.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VCVTPS2PH_SAE: Convert Single-Precision FP value to Half-Precision FP value (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2PH.SAE imm8 zmm k ymm
|
|
// VCVTPS2PH.SAE imm8 zmm ymm
|
|
func VCVTPS2PH_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2PH.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VCVTPS2PH_SAE_Z: Convert Single-Precision FP value to Half-Precision FP value (Suppress All Exceptions, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2PH.SAE.Z imm8 zmm k ymm
|
|
func VCVTPS2PH_SAE_Z(i, z, k, y operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2PH.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{i, z, k, y})
|
|
}
|
|
|
|
// VCVTPS2PH_Z: Convert Single-Precision FP value to Half-Precision FP value (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2PH.Z imm8 xmm k m64
|
|
// VCVTPS2PH.Z imm8 xmm k xmm
|
|
// VCVTPS2PH.Z imm8 ymm k m128
|
|
// VCVTPS2PH.Z imm8 ymm k xmm
|
|
// VCVTPS2PH.Z imm8 zmm k m256
|
|
// VCVTPS2PH.Z imm8 zmm k ymm
|
|
func VCVTPS2PH_Z(i, xyz, k, mxy operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2PH.Forms(), sffxs{sffxZ}, []operand.Op{i, xyz, k, mxy})
|
|
}
|
|
|
|
// VCVTPS2QQ: Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2QQ m128 k ymm
|
|
// VCVTPS2QQ m128 ymm
|
|
// VCVTPS2QQ m64 k xmm
|
|
// VCVTPS2QQ m64 xmm
|
|
// VCVTPS2QQ xmm k xmm
|
|
// VCVTPS2QQ xmm k ymm
|
|
// VCVTPS2QQ xmm xmm
|
|
// VCVTPS2QQ xmm ymm
|
|
// VCVTPS2QQ m256 k zmm
|
|
// VCVTPS2QQ m256 zmm
|
|
// VCVTPS2QQ ymm k zmm
|
|
// VCVTPS2QQ ymm zmm
|
|
func VCVTPS2QQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2QQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VCVTPS2QQ_BCST: Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2QQ.BCST m32 k xmm
|
|
// VCVTPS2QQ.BCST m32 k ymm
|
|
// VCVTPS2QQ.BCST m32 xmm
|
|
// VCVTPS2QQ.BCST m32 ymm
|
|
// VCVTPS2QQ.BCST m32 k zmm
|
|
// VCVTPS2QQ.BCST m32 zmm
|
|
func VCVTPS2QQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2QQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VCVTPS2QQ_BCST_Z: Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2QQ.BCST.Z m32 k xmm
|
|
// VCVTPS2QQ.BCST.Z m32 k ymm
|
|
// VCVTPS2QQ.BCST.Z m32 k zmm
|
|
func VCVTPS2QQ_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2QQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz})
|
|
}
|
|
|
|
// VCVTPS2QQ_RD_SAE: Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2QQ.RD_SAE ymm k zmm
|
|
// VCVTPS2QQ.RD_SAE ymm zmm
|
|
func VCVTPS2QQ_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2QQ.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VCVTPS2QQ_RD_SAE_Z: Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2QQ.RD_SAE.Z ymm k zmm
|
|
func VCVTPS2QQ_RD_SAE_Z(y, k, z operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2QQ.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{y, k, z})
|
|
}
|
|
|
|
// VCVTPS2QQ_RN_SAE: Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2QQ.RN_SAE ymm k zmm
|
|
// VCVTPS2QQ.RN_SAE ymm zmm
|
|
func VCVTPS2QQ_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2QQ.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VCVTPS2QQ_RN_SAE_Z: Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2QQ.RN_SAE.Z ymm k zmm
|
|
func VCVTPS2QQ_RN_SAE_Z(y, k, z operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2QQ.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{y, k, z})
|
|
}
|
|
|
|
// VCVTPS2QQ_RU_SAE: Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2QQ.RU_SAE ymm k zmm
|
|
// VCVTPS2QQ.RU_SAE ymm zmm
|
|
func VCVTPS2QQ_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2QQ.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VCVTPS2QQ_RU_SAE_Z: Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2QQ.RU_SAE.Z ymm k zmm
|
|
func VCVTPS2QQ_RU_SAE_Z(y, k, z operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2QQ.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{y, k, z})
|
|
}
|
|
|
|
// VCVTPS2QQ_RZ_SAE: Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2QQ.RZ_SAE ymm k zmm
|
|
// VCVTPS2QQ.RZ_SAE ymm zmm
|
|
func VCVTPS2QQ_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2QQ.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VCVTPS2QQ_RZ_SAE_Z: Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2QQ.RZ_SAE.Z ymm k zmm
|
|
func VCVTPS2QQ_RZ_SAE_Z(y, k, z operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2QQ.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{y, k, z})
|
|
}
|
|
|
|
// VCVTPS2QQ_Z: Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2QQ.Z m128 k ymm
|
|
// VCVTPS2QQ.Z m64 k xmm
|
|
// VCVTPS2QQ.Z xmm k xmm
|
|
// VCVTPS2QQ.Z xmm k ymm
|
|
// VCVTPS2QQ.Z m256 k zmm
|
|
// VCVTPS2QQ.Z ymm k zmm
|
|
func VCVTPS2QQ_Z(mxy, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2QQ.Forms(), sffxs{sffxZ}, []operand.Op{mxy, k, xyz})
|
|
}
|
|
|
|
// VCVTPS2UDQ: Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2UDQ m128 k xmm
|
|
// VCVTPS2UDQ m128 xmm
|
|
// VCVTPS2UDQ m256 k ymm
|
|
// VCVTPS2UDQ m256 ymm
|
|
// VCVTPS2UDQ xmm k xmm
|
|
// VCVTPS2UDQ xmm xmm
|
|
// VCVTPS2UDQ ymm k ymm
|
|
// VCVTPS2UDQ ymm ymm
|
|
// VCVTPS2UDQ m512 k zmm
|
|
// VCVTPS2UDQ m512 zmm
|
|
// VCVTPS2UDQ zmm k zmm
|
|
// VCVTPS2UDQ zmm zmm
|
|
func VCVTPS2UDQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2UDQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VCVTPS2UDQ_BCST: Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2UDQ.BCST m32 k xmm
|
|
// VCVTPS2UDQ.BCST m32 k ymm
|
|
// VCVTPS2UDQ.BCST m32 xmm
|
|
// VCVTPS2UDQ.BCST m32 ymm
|
|
// VCVTPS2UDQ.BCST m32 k zmm
|
|
// VCVTPS2UDQ.BCST m32 zmm
|
|
func VCVTPS2UDQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2UDQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VCVTPS2UDQ_BCST_Z: Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2UDQ.BCST.Z m32 k xmm
|
|
// VCVTPS2UDQ.BCST.Z m32 k ymm
|
|
// VCVTPS2UDQ.BCST.Z m32 k zmm
|
|
func VCVTPS2UDQ_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2UDQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz})
|
|
}
|
|
|
|
// VCVTPS2UDQ_RD_SAE: Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2UDQ.RD_SAE zmm k zmm
|
|
// VCVTPS2UDQ.RD_SAE zmm zmm
|
|
func VCVTPS2UDQ_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2UDQ.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VCVTPS2UDQ_RD_SAE_Z: Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2UDQ.RD_SAE.Z zmm k zmm
|
|
func VCVTPS2UDQ_RD_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2UDQ.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VCVTPS2UDQ_RN_SAE: Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2UDQ.RN_SAE zmm k zmm
|
|
// VCVTPS2UDQ.RN_SAE zmm zmm
|
|
func VCVTPS2UDQ_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2UDQ.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VCVTPS2UDQ_RN_SAE_Z: Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2UDQ.RN_SAE.Z zmm k zmm
|
|
func VCVTPS2UDQ_RN_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2UDQ.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VCVTPS2UDQ_RU_SAE: Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2UDQ.RU_SAE zmm k zmm
|
|
// VCVTPS2UDQ.RU_SAE zmm zmm
|
|
func VCVTPS2UDQ_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2UDQ.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VCVTPS2UDQ_RU_SAE_Z: Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2UDQ.RU_SAE.Z zmm k zmm
|
|
func VCVTPS2UDQ_RU_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2UDQ.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VCVTPS2UDQ_RZ_SAE: Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2UDQ.RZ_SAE zmm k zmm
|
|
// VCVTPS2UDQ.RZ_SAE zmm zmm
|
|
func VCVTPS2UDQ_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2UDQ.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VCVTPS2UDQ_RZ_SAE_Z: Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2UDQ.RZ_SAE.Z zmm k zmm
|
|
func VCVTPS2UDQ_RZ_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2UDQ.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VCVTPS2UDQ_Z: Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2UDQ.Z m128 k xmm
|
|
// VCVTPS2UDQ.Z m256 k ymm
|
|
// VCVTPS2UDQ.Z xmm k xmm
|
|
// VCVTPS2UDQ.Z ymm k ymm
|
|
// VCVTPS2UDQ.Z m512 k zmm
|
|
// VCVTPS2UDQ.Z zmm k zmm
|
|
func VCVTPS2UDQ_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2UDQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz})
|
|
}
|
|
|
|
// VCVTPS2UQQ: Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2UQQ m128 k ymm
|
|
// VCVTPS2UQQ m128 ymm
|
|
// VCVTPS2UQQ m64 k xmm
|
|
// VCVTPS2UQQ m64 xmm
|
|
// VCVTPS2UQQ xmm k xmm
|
|
// VCVTPS2UQQ xmm k ymm
|
|
// VCVTPS2UQQ xmm xmm
|
|
// VCVTPS2UQQ xmm ymm
|
|
// VCVTPS2UQQ m256 k zmm
|
|
// VCVTPS2UQQ m256 zmm
|
|
// VCVTPS2UQQ ymm k zmm
|
|
// VCVTPS2UQQ ymm zmm
|
|
func VCVTPS2UQQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2UQQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VCVTPS2UQQ_BCST: Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2UQQ.BCST m32 k xmm
|
|
// VCVTPS2UQQ.BCST m32 k ymm
|
|
// VCVTPS2UQQ.BCST m32 xmm
|
|
// VCVTPS2UQQ.BCST m32 ymm
|
|
// VCVTPS2UQQ.BCST m32 k zmm
|
|
// VCVTPS2UQQ.BCST m32 zmm
|
|
func VCVTPS2UQQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2UQQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VCVTPS2UQQ_BCST_Z: Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2UQQ.BCST.Z m32 k xmm
|
|
// VCVTPS2UQQ.BCST.Z m32 k ymm
|
|
// VCVTPS2UQQ.BCST.Z m32 k zmm
|
|
func VCVTPS2UQQ_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2UQQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz})
|
|
}
|
|
|
|
// VCVTPS2UQQ_RD_SAE: Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2UQQ.RD_SAE ymm k zmm
|
|
// VCVTPS2UQQ.RD_SAE ymm zmm
|
|
func VCVTPS2UQQ_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2UQQ.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VCVTPS2UQQ_RD_SAE_Z: Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2UQQ.RD_SAE.Z ymm k zmm
|
|
func VCVTPS2UQQ_RD_SAE_Z(y, k, z operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2UQQ.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{y, k, z})
|
|
}
|
|
|
|
// VCVTPS2UQQ_RN_SAE: Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2UQQ.RN_SAE ymm k zmm
|
|
// VCVTPS2UQQ.RN_SAE ymm zmm
|
|
func VCVTPS2UQQ_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2UQQ.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VCVTPS2UQQ_RN_SAE_Z: Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2UQQ.RN_SAE.Z ymm k zmm
|
|
func VCVTPS2UQQ_RN_SAE_Z(y, k, z operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2UQQ.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{y, k, z})
|
|
}
|
|
|
|
// VCVTPS2UQQ_RU_SAE: Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2UQQ.RU_SAE ymm k zmm
|
|
// VCVTPS2UQQ.RU_SAE ymm zmm
|
|
func VCVTPS2UQQ_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2UQQ.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VCVTPS2UQQ_RU_SAE_Z: Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2UQQ.RU_SAE.Z ymm k zmm
|
|
func VCVTPS2UQQ_RU_SAE_Z(y, k, z operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2UQQ.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{y, k, z})
|
|
}
|
|
|
|
// VCVTPS2UQQ_RZ_SAE: Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2UQQ.RZ_SAE ymm k zmm
|
|
// VCVTPS2UQQ.RZ_SAE ymm zmm
|
|
func VCVTPS2UQQ_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2UQQ.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VCVTPS2UQQ_RZ_SAE_Z: Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2UQQ.RZ_SAE.Z ymm k zmm
|
|
func VCVTPS2UQQ_RZ_SAE_Z(y, k, z operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2UQQ.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{y, k, z})
|
|
}
|
|
|
|
// VCVTPS2UQQ_Z: Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTPS2UQQ.Z m128 k ymm
|
|
// VCVTPS2UQQ.Z m64 k xmm
|
|
// VCVTPS2UQQ.Z xmm k xmm
|
|
// VCVTPS2UQQ.Z xmm k ymm
|
|
// VCVTPS2UQQ.Z m256 k zmm
|
|
// VCVTPS2UQQ.Z ymm k zmm
|
|
func VCVTPS2UQQ_Z(mxy, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTPS2UQQ.Forms(), sffxs{sffxZ}, []operand.Op{mxy, k, xyz})
|
|
}
|
|
|
|
// VCVTQQ2PD: Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTQQ2PD m128 k xmm
|
|
// VCVTQQ2PD m128 xmm
|
|
// VCVTQQ2PD m256 k ymm
|
|
// VCVTQQ2PD m256 ymm
|
|
// VCVTQQ2PD xmm k xmm
|
|
// VCVTQQ2PD xmm xmm
|
|
// VCVTQQ2PD ymm k ymm
|
|
// VCVTQQ2PD ymm ymm
|
|
// VCVTQQ2PD m512 k zmm
|
|
// VCVTQQ2PD m512 zmm
|
|
// VCVTQQ2PD zmm k zmm
|
|
// VCVTQQ2PD zmm zmm
|
|
func VCVTQQ2PD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTQQ2PD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VCVTQQ2PD_BCST: Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTQQ2PD.BCST m64 k xmm
|
|
// VCVTQQ2PD.BCST m64 k ymm
|
|
// VCVTQQ2PD.BCST m64 xmm
|
|
// VCVTQQ2PD.BCST m64 ymm
|
|
// VCVTQQ2PD.BCST m64 k zmm
|
|
// VCVTQQ2PD.BCST m64 zmm
|
|
func VCVTQQ2PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTQQ2PD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VCVTQQ2PD_BCST_Z: Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTQQ2PD.BCST.Z m64 k xmm
|
|
// VCVTQQ2PD.BCST.Z m64 k ymm
|
|
// VCVTQQ2PD.BCST.Z m64 k zmm
|
|
func VCVTQQ2PD_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTQQ2PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz})
|
|
}
|
|
|
|
// VCVTQQ2PD_RD_SAE: Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTQQ2PD.RD_SAE zmm k zmm
|
|
// VCVTQQ2PD.RD_SAE zmm zmm
|
|
func VCVTQQ2PD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTQQ2PD.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VCVTQQ2PD_RD_SAE_Z: Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTQQ2PD.RD_SAE.Z zmm k zmm
|
|
func VCVTQQ2PD_RD_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTQQ2PD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VCVTQQ2PD_RN_SAE: Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTQQ2PD.RN_SAE zmm k zmm
|
|
// VCVTQQ2PD.RN_SAE zmm zmm
|
|
func VCVTQQ2PD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTQQ2PD.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VCVTQQ2PD_RN_SAE_Z: Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTQQ2PD.RN_SAE.Z zmm k zmm
|
|
func VCVTQQ2PD_RN_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTQQ2PD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VCVTQQ2PD_RU_SAE: Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTQQ2PD.RU_SAE zmm k zmm
|
|
// VCVTQQ2PD.RU_SAE zmm zmm
|
|
func VCVTQQ2PD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTQQ2PD.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VCVTQQ2PD_RU_SAE_Z: Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTQQ2PD.RU_SAE.Z zmm k zmm
|
|
func VCVTQQ2PD_RU_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTQQ2PD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VCVTQQ2PD_RZ_SAE: Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTQQ2PD.RZ_SAE zmm k zmm
|
|
// VCVTQQ2PD.RZ_SAE zmm zmm
|
|
func VCVTQQ2PD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTQQ2PD.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VCVTQQ2PD_RZ_SAE_Z: Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTQQ2PD.RZ_SAE.Z zmm k zmm
|
|
func VCVTQQ2PD_RZ_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTQQ2PD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VCVTQQ2PD_Z: Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTQQ2PD.Z m128 k xmm
|
|
// VCVTQQ2PD.Z m256 k ymm
|
|
// VCVTQQ2PD.Z xmm k xmm
|
|
// VCVTQQ2PD.Z ymm k ymm
|
|
// VCVTQQ2PD.Z m512 k zmm
|
|
// VCVTQQ2PD.Z zmm k zmm
|
|
func VCVTQQ2PD_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTQQ2PD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz})
|
|
}
|
|
|
|
// VCVTQQ2PS: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTQQ2PS m512 k ymm
|
|
// VCVTQQ2PS m512 ymm
|
|
// VCVTQQ2PS zmm k ymm
|
|
// VCVTQQ2PS zmm ymm
|
|
func VCVTQQ2PS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTQQ2PS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VCVTQQ2PSX: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTQQ2PSX m128 k xmm
|
|
// VCVTQQ2PSX m128 xmm
|
|
// VCVTQQ2PSX xmm k xmm
|
|
// VCVTQQ2PSX xmm xmm
|
|
func VCVTQQ2PSX(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTQQ2PSX.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VCVTQQ2PSX_BCST: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTQQ2PSX.BCST m64 k xmm
|
|
// VCVTQQ2PSX.BCST m64 xmm
|
|
func VCVTQQ2PSX_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTQQ2PSX.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VCVTQQ2PSX_BCST_Z: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTQQ2PSX.BCST.Z m64 k xmm
|
|
func VCVTQQ2PSX_BCST_Z(m, k, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTQQ2PSX.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, x})
|
|
}
|
|
|
|
// VCVTQQ2PSX_Z: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTQQ2PSX.Z m128 k xmm
|
|
// VCVTQQ2PSX.Z xmm k xmm
|
|
func VCVTQQ2PSX_Z(mx, k, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTQQ2PSX.Forms(), sffxs{sffxZ}, []operand.Op{mx, k, x})
|
|
}
|
|
|
|
// VCVTQQ2PSY: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTQQ2PSY m256 k xmm
|
|
// VCVTQQ2PSY m256 xmm
|
|
// VCVTQQ2PSY ymm k xmm
|
|
// VCVTQQ2PSY ymm xmm
|
|
func VCVTQQ2PSY(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTQQ2PSY.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VCVTQQ2PSY_BCST: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTQQ2PSY.BCST m64 k xmm
|
|
// VCVTQQ2PSY.BCST m64 xmm
|
|
func VCVTQQ2PSY_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTQQ2PSY.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VCVTQQ2PSY_BCST_Z: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTQQ2PSY.BCST.Z m64 k xmm
|
|
func VCVTQQ2PSY_BCST_Z(m, k, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTQQ2PSY.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, x})
|
|
}
|
|
|
|
// VCVTQQ2PSY_Z: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTQQ2PSY.Z m256 k xmm
|
|
// VCVTQQ2PSY.Z ymm k xmm
|
|
func VCVTQQ2PSY_Z(my, k, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTQQ2PSY.Forms(), sffxs{sffxZ}, []operand.Op{my, k, x})
|
|
}
|
|
|
|
// VCVTQQ2PS_BCST: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTQQ2PS.BCST m64 k ymm
|
|
// VCVTQQ2PS.BCST m64 ymm
|
|
func VCVTQQ2PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTQQ2PS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VCVTQQ2PS_BCST_Z: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTQQ2PS.BCST.Z m64 k ymm
|
|
func VCVTQQ2PS_BCST_Z(m, k, y operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTQQ2PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, y})
|
|
}
|
|
|
|
// VCVTQQ2PS_RD_SAE: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTQQ2PS.RD_SAE zmm k ymm
|
|
// VCVTQQ2PS.RD_SAE zmm ymm
|
|
func VCVTQQ2PS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTQQ2PS.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VCVTQQ2PS_RD_SAE_Z: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTQQ2PS.RD_SAE.Z zmm k ymm
|
|
func VCVTQQ2PS_RD_SAE_Z(z, k, y operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTQQ2PS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, k, y})
|
|
}
|
|
|
|
// VCVTQQ2PS_RN_SAE: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTQQ2PS.RN_SAE zmm k ymm
|
|
// VCVTQQ2PS.RN_SAE zmm ymm
|
|
func VCVTQQ2PS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTQQ2PS.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VCVTQQ2PS_RN_SAE_Z: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTQQ2PS.RN_SAE.Z zmm k ymm
|
|
func VCVTQQ2PS_RN_SAE_Z(z, k, y operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTQQ2PS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, k, y})
|
|
}
|
|
|
|
// VCVTQQ2PS_RU_SAE: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTQQ2PS.RU_SAE zmm k ymm
|
|
// VCVTQQ2PS.RU_SAE zmm ymm
|
|
func VCVTQQ2PS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTQQ2PS.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VCVTQQ2PS_RU_SAE_Z: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTQQ2PS.RU_SAE.Z zmm k ymm
|
|
func VCVTQQ2PS_RU_SAE_Z(z, k, y operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTQQ2PS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, k, y})
|
|
}
|
|
|
|
// VCVTQQ2PS_RZ_SAE: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTQQ2PS.RZ_SAE zmm k ymm
|
|
// VCVTQQ2PS.RZ_SAE zmm ymm
|
|
func VCVTQQ2PS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTQQ2PS.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VCVTQQ2PS_RZ_SAE_Z: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTQQ2PS.RZ_SAE.Z zmm k ymm
|
|
func VCVTQQ2PS_RZ_SAE_Z(z, k, y operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTQQ2PS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, k, y})
|
|
}
|
|
|
|
// VCVTQQ2PS_Z: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTQQ2PS.Z m512 k ymm
|
|
// VCVTQQ2PS.Z zmm k ymm
|
|
func VCVTQQ2PS_Z(mz, k, y operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTQQ2PS.Forms(), sffxs{sffxZ}, []operand.Op{mz, k, y})
|
|
}
|
|
|
|
// VCVTSD2SI: Convert Scalar Double-Precision FP Value to Integer.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSD2SI m64 r32
|
|
// VCVTSD2SI xmm r32
|
|
func VCVTSD2SI(mx, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSD2SI.Forms(), sffxs{}, []operand.Op{mx, r})
|
|
}
|
|
|
|
// VCVTSD2SIQ: Convert Scalar Double-Precision FP Value to Integer.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSD2SIQ m64 r64
|
|
// VCVTSD2SIQ xmm r64
|
|
func VCVTSD2SIQ(mx, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSD2SIQ.Forms(), sffxs{}, []operand.Op{mx, r})
|
|
}
|
|
|
|
// VCVTSD2SIQ_RD_SAE: Convert Scalar Double-Precision FP Value to Integer (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSD2SIQ.RD_SAE xmm r64
|
|
func VCVTSD2SIQ_RD_SAE(x, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSD2SIQ.Forms(), sffxs{sffxRD_SAE}, []operand.Op{x, r})
|
|
}
|
|
|
|
// VCVTSD2SIQ_RN_SAE: Convert Scalar Double-Precision FP Value to Integer (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSD2SIQ.RN_SAE xmm r64
|
|
func VCVTSD2SIQ_RN_SAE(x, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSD2SIQ.Forms(), sffxs{sffxRN_SAE}, []operand.Op{x, r})
|
|
}
|
|
|
|
// VCVTSD2SIQ_RU_SAE: Convert Scalar Double-Precision FP Value to Integer (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSD2SIQ.RU_SAE xmm r64
|
|
func VCVTSD2SIQ_RU_SAE(x, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSD2SIQ.Forms(), sffxs{sffxRU_SAE}, []operand.Op{x, r})
|
|
}
|
|
|
|
// VCVTSD2SIQ_RZ_SAE: Convert Scalar Double-Precision FP Value to Integer (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSD2SIQ.RZ_SAE xmm r64
|
|
func VCVTSD2SIQ_RZ_SAE(x, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSD2SIQ.Forms(), sffxs{sffxRZ_SAE}, []operand.Op{x, r})
|
|
}
|
|
|
|
// VCVTSD2SI_RD_SAE: Convert Scalar Double-Precision FP Value to Integer (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSD2SI.RD_SAE xmm r32
|
|
func VCVTSD2SI_RD_SAE(x, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSD2SI.Forms(), sffxs{sffxRD_SAE}, []operand.Op{x, r})
|
|
}
|
|
|
|
// VCVTSD2SI_RN_SAE: Convert Scalar Double-Precision FP Value to Integer (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSD2SI.RN_SAE xmm r32
|
|
func VCVTSD2SI_RN_SAE(x, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSD2SI.Forms(), sffxs{sffxRN_SAE}, []operand.Op{x, r})
|
|
}
|
|
|
|
// VCVTSD2SI_RU_SAE: Convert Scalar Double-Precision FP Value to Integer (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSD2SI.RU_SAE xmm r32
|
|
func VCVTSD2SI_RU_SAE(x, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSD2SI.Forms(), sffxs{sffxRU_SAE}, []operand.Op{x, r})
|
|
}
|
|
|
|
// VCVTSD2SI_RZ_SAE: Convert Scalar Double-Precision FP Value to Integer (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSD2SI.RZ_SAE xmm r32
|
|
func VCVTSD2SI_RZ_SAE(x, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSD2SI.Forms(), sffxs{sffxRZ_SAE}, []operand.Op{x, r})
|
|
}
|
|
|
|
// VCVTSD2SS: Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSD2SS m64 xmm xmm
|
|
// VCVTSD2SS xmm xmm xmm
|
|
// VCVTSD2SS m64 xmm k xmm
|
|
// VCVTSD2SS xmm xmm k xmm
|
|
func VCVTSD2SS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSD2SS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VCVTSD2SS_RD_SAE: Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSD2SS.RD_SAE xmm xmm k xmm
|
|
// VCVTSD2SS.RD_SAE xmm xmm xmm
|
|
func VCVTSD2SS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSD2SS.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VCVTSD2SS_RD_SAE_Z: Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSD2SS.RD_SAE.Z xmm xmm k xmm
|
|
func VCVTSD2SS_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSD2SS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VCVTSD2SS_RN_SAE: Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSD2SS.RN_SAE xmm xmm k xmm
|
|
// VCVTSD2SS.RN_SAE xmm xmm xmm
|
|
func VCVTSD2SS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSD2SS.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VCVTSD2SS_RN_SAE_Z: Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSD2SS.RN_SAE.Z xmm xmm k xmm
|
|
func VCVTSD2SS_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSD2SS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VCVTSD2SS_RU_SAE: Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSD2SS.RU_SAE xmm xmm k xmm
|
|
// VCVTSD2SS.RU_SAE xmm xmm xmm
|
|
func VCVTSD2SS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSD2SS.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VCVTSD2SS_RU_SAE_Z: Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSD2SS.RU_SAE.Z xmm xmm k xmm
|
|
func VCVTSD2SS_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSD2SS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VCVTSD2SS_RZ_SAE: Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSD2SS.RZ_SAE xmm xmm k xmm
|
|
// VCVTSD2SS.RZ_SAE xmm xmm xmm
|
|
func VCVTSD2SS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSD2SS.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VCVTSD2SS_RZ_SAE_Z: Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSD2SS.RZ_SAE.Z xmm xmm k xmm
|
|
func VCVTSD2SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSD2SS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VCVTSD2SS_Z: Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSD2SS.Z m64 xmm k xmm
|
|
// VCVTSD2SS.Z xmm xmm k xmm
|
|
func VCVTSD2SS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSD2SS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VCVTSD2USIL: Convert Scalar Double-Precision Floating-Point Value to Unsigned Doubleword Integer.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSD2USIL m64 r32
|
|
// VCVTSD2USIL xmm r32
|
|
func VCVTSD2USIL(mx, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSD2USIL.Forms(), sffxs{}, []operand.Op{mx, r})
|
|
}
|
|
|
|
// VCVTSD2USIL_RD_SAE: Convert Scalar Double-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSD2USIL.RD_SAE xmm r32
|
|
func VCVTSD2USIL_RD_SAE(x, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSD2USIL.Forms(), sffxs{sffxRD_SAE}, []operand.Op{x, r})
|
|
}
|
|
|
|
// VCVTSD2USIL_RN_SAE: Convert Scalar Double-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSD2USIL.RN_SAE xmm r32
|
|
func VCVTSD2USIL_RN_SAE(x, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSD2USIL.Forms(), sffxs{sffxRN_SAE}, []operand.Op{x, r})
|
|
}
|
|
|
|
// VCVTSD2USIL_RU_SAE: Convert Scalar Double-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSD2USIL.RU_SAE xmm r32
|
|
func VCVTSD2USIL_RU_SAE(x, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSD2USIL.Forms(), sffxs{sffxRU_SAE}, []operand.Op{x, r})
|
|
}
|
|
|
|
// VCVTSD2USIL_RZ_SAE: Convert Scalar Double-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSD2USIL.RZ_SAE xmm r32
|
|
func VCVTSD2USIL_RZ_SAE(x, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSD2USIL.Forms(), sffxs{sffxRZ_SAE}, []operand.Op{x, r})
|
|
}
|
|
|
|
// VCVTSD2USIQ: Convert Scalar Double-Precision Floating-Point Value to Unsigned Doubleword Integer.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSD2USIQ m64 r64
|
|
// VCVTSD2USIQ xmm r64
|
|
func VCVTSD2USIQ(mx, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSD2USIQ.Forms(), sffxs{}, []operand.Op{mx, r})
|
|
}
|
|
|
|
// VCVTSD2USIQ_RD_SAE: Convert Scalar Double-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSD2USIQ.RD_SAE xmm r64
|
|
func VCVTSD2USIQ_RD_SAE(x, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSD2USIQ.Forms(), sffxs{sffxRD_SAE}, []operand.Op{x, r})
|
|
}
|
|
|
|
// VCVTSD2USIQ_RN_SAE: Convert Scalar Double-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSD2USIQ.RN_SAE xmm r64
|
|
func VCVTSD2USIQ_RN_SAE(x, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSD2USIQ.Forms(), sffxs{sffxRN_SAE}, []operand.Op{x, r})
|
|
}
|
|
|
|
// VCVTSD2USIQ_RU_SAE: Convert Scalar Double-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSD2USIQ.RU_SAE xmm r64
|
|
func VCVTSD2USIQ_RU_SAE(x, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSD2USIQ.Forms(), sffxs{sffxRU_SAE}, []operand.Op{x, r})
|
|
}
|
|
|
|
// VCVTSD2USIQ_RZ_SAE: Convert Scalar Double-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSD2USIQ.RZ_SAE xmm r64
|
|
func VCVTSD2USIQ_RZ_SAE(x, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSD2USIQ.Forms(), sffxs{sffxRZ_SAE}, []operand.Op{x, r})
|
|
}
|
|
|
|
// VCVTSI2SDL: Convert Dword Integer to Scalar Double-Precision FP Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSI2SDL m32 xmm xmm
|
|
// VCVTSI2SDL r32 xmm xmm
|
|
func VCVTSI2SDL(mr, x, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSI2SDL.Forms(), sffxs{}, []operand.Op{mr, x, x1})
|
|
}
|
|
|
|
// VCVTSI2SDQ: Convert Dword Integer to Scalar Double-Precision FP Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSI2SDQ m64 xmm xmm
|
|
// VCVTSI2SDQ r64 xmm xmm
|
|
func VCVTSI2SDQ(mr, x, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSI2SDQ.Forms(), sffxs{}, []operand.Op{mr, x, x1})
|
|
}
|
|
|
|
// VCVTSI2SDQ_RD_SAE: Convert Dword Integer to Scalar Double-Precision FP Value (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSI2SDQ.RD_SAE r64 xmm xmm
|
|
func VCVTSI2SDQ_RD_SAE(r, x, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSI2SDQ.Forms(), sffxs{sffxRD_SAE}, []operand.Op{r, x, x1})
|
|
}
|
|
|
|
// VCVTSI2SDQ_RN_SAE: Convert Dword Integer to Scalar Double-Precision FP Value (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSI2SDQ.RN_SAE r64 xmm xmm
|
|
func VCVTSI2SDQ_RN_SAE(r, x, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSI2SDQ.Forms(), sffxs{sffxRN_SAE}, []operand.Op{r, x, x1})
|
|
}
|
|
|
|
// VCVTSI2SDQ_RU_SAE: Convert Dword Integer to Scalar Double-Precision FP Value (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSI2SDQ.RU_SAE r64 xmm xmm
|
|
func VCVTSI2SDQ_RU_SAE(r, x, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSI2SDQ.Forms(), sffxs{sffxRU_SAE}, []operand.Op{r, x, x1})
|
|
}
|
|
|
|
// VCVTSI2SDQ_RZ_SAE: Convert Dword Integer to Scalar Double-Precision FP Value (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSI2SDQ.RZ_SAE r64 xmm xmm
|
|
func VCVTSI2SDQ_RZ_SAE(r, x, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSI2SDQ.Forms(), sffxs{sffxRZ_SAE}, []operand.Op{r, x, x1})
|
|
}
|
|
|
|
// VCVTSI2SSL: Convert Dword Integer to Scalar Single-Precision FP Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSI2SSL m32 xmm xmm
|
|
// VCVTSI2SSL r32 xmm xmm
|
|
func VCVTSI2SSL(mr, x, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSI2SSL.Forms(), sffxs{}, []operand.Op{mr, x, x1})
|
|
}
|
|
|
|
// VCVTSI2SSL_RD_SAE: Convert Dword Integer to Scalar Single-Precision FP Value (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSI2SSL.RD_SAE r32 xmm xmm
|
|
func VCVTSI2SSL_RD_SAE(r, x, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSI2SSL.Forms(), sffxs{sffxRD_SAE}, []operand.Op{r, x, x1})
|
|
}
|
|
|
|
// VCVTSI2SSL_RN_SAE: Convert Dword Integer to Scalar Single-Precision FP Value (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSI2SSL.RN_SAE r32 xmm xmm
|
|
func VCVTSI2SSL_RN_SAE(r, x, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSI2SSL.Forms(), sffxs{sffxRN_SAE}, []operand.Op{r, x, x1})
|
|
}
|
|
|
|
// VCVTSI2SSL_RU_SAE: Convert Dword Integer to Scalar Single-Precision FP Value (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSI2SSL.RU_SAE r32 xmm xmm
|
|
func VCVTSI2SSL_RU_SAE(r, x, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSI2SSL.Forms(), sffxs{sffxRU_SAE}, []operand.Op{r, x, x1})
|
|
}
|
|
|
|
// VCVTSI2SSL_RZ_SAE: Convert Dword Integer to Scalar Single-Precision FP Value (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSI2SSL.RZ_SAE r32 xmm xmm
|
|
func VCVTSI2SSL_RZ_SAE(r, x, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSI2SSL.Forms(), sffxs{sffxRZ_SAE}, []operand.Op{r, x, x1})
|
|
}
|
|
|
|
// VCVTSI2SSQ: Convert Dword Integer to Scalar Single-Precision FP Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSI2SSQ m64 xmm xmm
|
|
// VCVTSI2SSQ r64 xmm xmm
|
|
func VCVTSI2SSQ(mr, x, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSI2SSQ.Forms(), sffxs{}, []operand.Op{mr, x, x1})
|
|
}
|
|
|
|
// VCVTSI2SSQ_RD_SAE: Convert Dword Integer to Scalar Single-Precision FP Value (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSI2SSQ.RD_SAE r64 xmm xmm
|
|
func VCVTSI2SSQ_RD_SAE(r, x, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSI2SSQ.Forms(), sffxs{sffxRD_SAE}, []operand.Op{r, x, x1})
|
|
}
|
|
|
|
// VCVTSI2SSQ_RN_SAE: Convert Dword Integer to Scalar Single-Precision FP Value (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSI2SSQ.RN_SAE r64 xmm xmm
|
|
func VCVTSI2SSQ_RN_SAE(r, x, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSI2SSQ.Forms(), sffxs{sffxRN_SAE}, []operand.Op{r, x, x1})
|
|
}
|
|
|
|
// VCVTSI2SSQ_RU_SAE: Convert Dword Integer to Scalar Single-Precision FP Value (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSI2SSQ.RU_SAE r64 xmm xmm
|
|
func VCVTSI2SSQ_RU_SAE(r, x, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSI2SSQ.Forms(), sffxs{sffxRU_SAE}, []operand.Op{r, x, x1})
|
|
}
|
|
|
|
// VCVTSI2SSQ_RZ_SAE: Convert Dword Integer to Scalar Single-Precision FP Value (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSI2SSQ.RZ_SAE r64 xmm xmm
|
|
func VCVTSI2SSQ_RZ_SAE(r, x, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSI2SSQ.Forms(), sffxs{sffxRZ_SAE}, []operand.Op{r, x, x1})
|
|
}
|
|
|
|
// VCVTSS2SD: Convert Scalar Single-Precision FP Value to Scalar Double-Precision FP Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSS2SD m32 xmm xmm
|
|
// VCVTSS2SD xmm xmm xmm
|
|
// VCVTSS2SD m32 xmm k xmm
|
|
// VCVTSS2SD xmm xmm k xmm
|
|
func VCVTSS2SD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSS2SD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VCVTSS2SD_SAE: Convert Scalar Single-Precision FP Value to Scalar Double-Precision FP Value (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSS2SD.SAE xmm xmm k xmm
|
|
// VCVTSS2SD.SAE xmm xmm xmm
|
|
func VCVTSS2SD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSS2SD.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VCVTSS2SD_SAE_Z: Convert Scalar Single-Precision FP Value to Scalar Double-Precision FP Value (Suppress All Exceptions, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSS2SD.SAE.Z xmm xmm k xmm
|
|
func VCVTSS2SD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSS2SD.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VCVTSS2SD_Z: Convert Scalar Single-Precision FP Value to Scalar Double-Precision FP Value (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSS2SD.Z m32 xmm k xmm
|
|
// VCVTSS2SD.Z xmm xmm k xmm
|
|
func VCVTSS2SD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSS2SD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VCVTSS2SI: Convert Scalar Single-Precision FP Value to Dword Integer.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSS2SI m32 r32
|
|
// VCVTSS2SI xmm r32
|
|
func VCVTSS2SI(mx, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSS2SI.Forms(), sffxs{}, []operand.Op{mx, r})
|
|
}
|
|
|
|
// VCVTSS2SIQ: Convert Scalar Single-Precision FP Value to Dword Integer.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSS2SIQ m32 r64
|
|
// VCVTSS2SIQ xmm r64
|
|
func VCVTSS2SIQ(mx, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSS2SIQ.Forms(), sffxs{}, []operand.Op{mx, r})
|
|
}
|
|
|
|
// VCVTSS2SIQ_RD_SAE: Convert Scalar Single-Precision FP Value to Dword Integer (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSS2SIQ.RD_SAE xmm r64
|
|
func VCVTSS2SIQ_RD_SAE(x, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSS2SIQ.Forms(), sffxs{sffxRD_SAE}, []operand.Op{x, r})
|
|
}
|
|
|
|
// VCVTSS2SIQ_RN_SAE: Convert Scalar Single-Precision FP Value to Dword Integer (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSS2SIQ.RN_SAE xmm r64
|
|
func VCVTSS2SIQ_RN_SAE(x, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSS2SIQ.Forms(), sffxs{sffxRN_SAE}, []operand.Op{x, r})
|
|
}
|
|
|
|
// VCVTSS2SIQ_RU_SAE: Convert Scalar Single-Precision FP Value to Dword Integer (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSS2SIQ.RU_SAE xmm r64
|
|
func VCVTSS2SIQ_RU_SAE(x, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSS2SIQ.Forms(), sffxs{sffxRU_SAE}, []operand.Op{x, r})
|
|
}
|
|
|
|
// VCVTSS2SIQ_RZ_SAE: Convert Scalar Single-Precision FP Value to Dword Integer (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSS2SIQ.RZ_SAE xmm r64
|
|
func VCVTSS2SIQ_RZ_SAE(x, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSS2SIQ.Forms(), sffxs{sffxRZ_SAE}, []operand.Op{x, r})
|
|
}
|
|
|
|
// VCVTSS2SI_RD_SAE: Convert Scalar Single-Precision FP Value to Dword Integer (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSS2SI.RD_SAE xmm r32
|
|
func VCVTSS2SI_RD_SAE(x, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSS2SI.Forms(), sffxs{sffxRD_SAE}, []operand.Op{x, r})
|
|
}
|
|
|
|
// VCVTSS2SI_RN_SAE: Convert Scalar Single-Precision FP Value to Dword Integer (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSS2SI.RN_SAE xmm r32
|
|
func VCVTSS2SI_RN_SAE(x, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSS2SI.Forms(), sffxs{sffxRN_SAE}, []operand.Op{x, r})
|
|
}
|
|
|
|
// VCVTSS2SI_RU_SAE: Convert Scalar Single-Precision FP Value to Dword Integer (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSS2SI.RU_SAE xmm r32
|
|
func VCVTSS2SI_RU_SAE(x, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSS2SI.Forms(), sffxs{sffxRU_SAE}, []operand.Op{x, r})
|
|
}
|
|
|
|
// VCVTSS2SI_RZ_SAE: Convert Scalar Single-Precision FP Value to Dword Integer (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSS2SI.RZ_SAE xmm r32
|
|
func VCVTSS2SI_RZ_SAE(x, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSS2SI.Forms(), sffxs{sffxRZ_SAE}, []operand.Op{x, r})
|
|
}
|
|
|
|
// VCVTSS2USIL: Convert Scalar Single-Precision Floating-Point Value to Unsigned Doubleword Integer.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSS2USIL m32 r32
|
|
// VCVTSS2USIL xmm r32
|
|
func VCVTSS2USIL(mx, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSS2USIL.Forms(), sffxs{}, []operand.Op{mx, r})
|
|
}
|
|
|
|
// VCVTSS2USIL_RD_SAE: Convert Scalar Single-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSS2USIL.RD_SAE xmm r32
|
|
func VCVTSS2USIL_RD_SAE(x, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSS2USIL.Forms(), sffxs{sffxRD_SAE}, []operand.Op{x, r})
|
|
}
|
|
|
|
// VCVTSS2USIL_RN_SAE: Convert Scalar Single-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSS2USIL.RN_SAE xmm r32
|
|
func VCVTSS2USIL_RN_SAE(x, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSS2USIL.Forms(), sffxs{sffxRN_SAE}, []operand.Op{x, r})
|
|
}
|
|
|
|
// VCVTSS2USIL_RU_SAE: Convert Scalar Single-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSS2USIL.RU_SAE xmm r32
|
|
func VCVTSS2USIL_RU_SAE(x, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSS2USIL.Forms(), sffxs{sffxRU_SAE}, []operand.Op{x, r})
|
|
}
|
|
|
|
// VCVTSS2USIL_RZ_SAE: Convert Scalar Single-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSS2USIL.RZ_SAE xmm r32
|
|
func VCVTSS2USIL_RZ_SAE(x, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSS2USIL.Forms(), sffxs{sffxRZ_SAE}, []operand.Op{x, r})
|
|
}
|
|
|
|
// VCVTSS2USIQ: Convert Scalar Single-Precision Floating-Point Value to Unsigned Doubleword Integer.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSS2USIQ m32 r64
|
|
// VCVTSS2USIQ xmm r64
|
|
func VCVTSS2USIQ(mx, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSS2USIQ.Forms(), sffxs{}, []operand.Op{mx, r})
|
|
}
|
|
|
|
// VCVTSS2USIQ_RD_SAE: Convert Scalar Single-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSS2USIQ.RD_SAE xmm r64
|
|
func VCVTSS2USIQ_RD_SAE(x, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSS2USIQ.Forms(), sffxs{sffxRD_SAE}, []operand.Op{x, r})
|
|
}
|
|
|
|
// VCVTSS2USIQ_RN_SAE: Convert Scalar Single-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSS2USIQ.RN_SAE xmm r64
|
|
func VCVTSS2USIQ_RN_SAE(x, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSS2USIQ.Forms(), sffxs{sffxRN_SAE}, []operand.Op{x, r})
|
|
}
|
|
|
|
// VCVTSS2USIQ_RU_SAE: Convert Scalar Single-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSS2USIQ.RU_SAE xmm r64
|
|
func VCVTSS2USIQ_RU_SAE(x, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSS2USIQ.Forms(), sffxs{sffxRU_SAE}, []operand.Op{x, r})
|
|
}
|
|
|
|
// VCVTSS2USIQ_RZ_SAE: Convert Scalar Single-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTSS2USIQ.RZ_SAE xmm r64
|
|
func VCVTSS2USIQ_RZ_SAE(x, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTSS2USIQ.Forms(), sffxs{sffxRZ_SAE}, []operand.Op{x, r})
|
|
}
|
|
|
|
// VCVTTPD2DQ: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPD2DQ m512 k ymm
|
|
// VCVTTPD2DQ m512 ymm
|
|
// VCVTTPD2DQ zmm k ymm
|
|
// VCVTTPD2DQ zmm ymm
|
|
func VCVTTPD2DQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPD2DQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VCVTTPD2DQX: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPD2DQX m128 xmm
|
|
// VCVTTPD2DQX xmm xmm
|
|
// VCVTTPD2DQX m128 k xmm
|
|
// VCVTTPD2DQX xmm k xmm
|
|
func VCVTTPD2DQX(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPD2DQX.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VCVTTPD2DQX_BCST: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPD2DQX.BCST m64 k xmm
|
|
// VCVTTPD2DQX.BCST m64 xmm
|
|
func VCVTTPD2DQX_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPD2DQX.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VCVTTPD2DQX_BCST_Z: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPD2DQX.BCST.Z m64 k xmm
|
|
func VCVTTPD2DQX_BCST_Z(m, k, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPD2DQX.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, x})
|
|
}
|
|
|
|
// VCVTTPD2DQX_Z: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPD2DQX.Z m128 k xmm
|
|
// VCVTTPD2DQX.Z xmm k xmm
|
|
func VCVTTPD2DQX_Z(mx, k, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPD2DQX.Forms(), sffxs{sffxZ}, []operand.Op{mx, k, x})
|
|
}
|
|
|
|
// VCVTTPD2DQY: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPD2DQY m256 xmm
|
|
// VCVTTPD2DQY ymm xmm
|
|
// VCVTTPD2DQY m256 k xmm
|
|
// VCVTTPD2DQY ymm k xmm
|
|
func VCVTTPD2DQY(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPD2DQY.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VCVTTPD2DQY_BCST: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPD2DQY.BCST m64 k xmm
|
|
// VCVTTPD2DQY.BCST m64 xmm
|
|
func VCVTTPD2DQY_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPD2DQY.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VCVTTPD2DQY_BCST_Z: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPD2DQY.BCST.Z m64 k xmm
|
|
func VCVTTPD2DQY_BCST_Z(m, k, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPD2DQY.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, x})
|
|
}
|
|
|
|
// VCVTTPD2DQY_Z: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPD2DQY.Z m256 k xmm
|
|
// VCVTTPD2DQY.Z ymm k xmm
|
|
func VCVTTPD2DQY_Z(my, k, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPD2DQY.Forms(), sffxs{sffxZ}, []operand.Op{my, k, x})
|
|
}
|
|
|
|
// VCVTTPD2DQ_BCST: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPD2DQ.BCST m64 k ymm
|
|
// VCVTTPD2DQ.BCST m64 ymm
|
|
func VCVTTPD2DQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPD2DQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VCVTTPD2DQ_BCST_Z: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPD2DQ.BCST.Z m64 k ymm
|
|
func VCVTTPD2DQ_BCST_Z(m, k, y operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPD2DQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, y})
|
|
}
|
|
|
|
// VCVTTPD2DQ_SAE: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPD2DQ.SAE zmm k ymm
|
|
// VCVTTPD2DQ.SAE zmm ymm
|
|
func VCVTTPD2DQ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPD2DQ.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VCVTTPD2DQ_SAE_Z: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers (Suppress All Exceptions, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPD2DQ.SAE.Z zmm k ymm
|
|
func VCVTTPD2DQ_SAE_Z(z, k, y operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPD2DQ.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{z, k, y})
|
|
}
|
|
|
|
// VCVTTPD2DQ_Z: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPD2DQ.Z m512 k ymm
|
|
// VCVTTPD2DQ.Z zmm k ymm
|
|
func VCVTTPD2DQ_Z(mz, k, y operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPD2DQ.Forms(), sffxs{sffxZ}, []operand.Op{mz, k, y})
|
|
}
|
|
|
|
// VCVTTPD2QQ: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Quadword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPD2QQ m128 k xmm
|
|
// VCVTTPD2QQ m128 xmm
|
|
// VCVTTPD2QQ m256 k ymm
|
|
// VCVTTPD2QQ m256 ymm
|
|
// VCVTTPD2QQ xmm k xmm
|
|
// VCVTTPD2QQ xmm xmm
|
|
// VCVTTPD2QQ ymm k ymm
|
|
// VCVTTPD2QQ ymm ymm
|
|
// VCVTTPD2QQ m512 k zmm
|
|
// VCVTTPD2QQ m512 zmm
|
|
// VCVTTPD2QQ zmm k zmm
|
|
// VCVTTPD2QQ zmm zmm
|
|
func VCVTTPD2QQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPD2QQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VCVTTPD2QQ_BCST: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPD2QQ.BCST m64 k xmm
|
|
// VCVTTPD2QQ.BCST m64 k ymm
|
|
// VCVTTPD2QQ.BCST m64 xmm
|
|
// VCVTTPD2QQ.BCST m64 ymm
|
|
// VCVTTPD2QQ.BCST m64 k zmm
|
|
// VCVTTPD2QQ.BCST m64 zmm
|
|
func VCVTTPD2QQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPD2QQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VCVTTPD2QQ_BCST_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPD2QQ.BCST.Z m64 k xmm
|
|
// VCVTTPD2QQ.BCST.Z m64 k ymm
|
|
// VCVTTPD2QQ.BCST.Z m64 k zmm
|
|
func VCVTTPD2QQ_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPD2QQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz})
|
|
}
|
|
|
|
// VCVTTPD2QQ_SAE: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPD2QQ.SAE zmm k zmm
|
|
// VCVTTPD2QQ.SAE zmm zmm
|
|
func VCVTTPD2QQ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPD2QQ.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VCVTTPD2QQ_SAE_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Suppress All Exceptions, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPD2QQ.SAE.Z zmm k zmm
|
|
func VCVTTPD2QQ_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPD2QQ.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VCVTTPD2QQ_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPD2QQ.Z m128 k xmm
|
|
// VCVTTPD2QQ.Z m256 k ymm
|
|
// VCVTTPD2QQ.Z xmm k xmm
|
|
// VCVTTPD2QQ.Z ymm k ymm
|
|
// VCVTTPD2QQ.Z m512 k zmm
|
|
// VCVTTPD2QQ.Z zmm k zmm
|
|
func VCVTTPD2QQ_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPD2QQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz})
|
|
}
|
|
|
|
// VCVTTPD2UDQ: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPD2UDQ m512 k ymm
|
|
// VCVTTPD2UDQ m512 ymm
|
|
// VCVTTPD2UDQ zmm k ymm
|
|
// VCVTTPD2UDQ zmm ymm
|
|
func VCVTTPD2UDQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPD2UDQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VCVTTPD2UDQX: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPD2UDQX m128 k xmm
|
|
// VCVTTPD2UDQX m128 xmm
|
|
// VCVTTPD2UDQX xmm k xmm
|
|
// VCVTTPD2UDQX xmm xmm
|
|
func VCVTTPD2UDQX(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPD2UDQX.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VCVTTPD2UDQX_BCST: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPD2UDQX.BCST m64 k xmm
|
|
// VCVTTPD2UDQX.BCST m64 xmm
|
|
func VCVTTPD2UDQX_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPD2UDQX.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VCVTTPD2UDQX_BCST_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPD2UDQX.BCST.Z m64 k xmm
|
|
func VCVTTPD2UDQX_BCST_Z(m, k, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPD2UDQX.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, x})
|
|
}
|
|
|
|
// VCVTTPD2UDQX_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPD2UDQX.Z m128 k xmm
|
|
// VCVTTPD2UDQX.Z xmm k xmm
|
|
func VCVTTPD2UDQX_Z(mx, k, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPD2UDQX.Forms(), sffxs{sffxZ}, []operand.Op{mx, k, x})
|
|
}
|
|
|
|
// VCVTTPD2UDQY: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPD2UDQY m256 k xmm
|
|
// VCVTTPD2UDQY m256 xmm
|
|
// VCVTTPD2UDQY ymm k xmm
|
|
// VCVTTPD2UDQY ymm xmm
|
|
func VCVTTPD2UDQY(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPD2UDQY.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VCVTTPD2UDQY_BCST: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPD2UDQY.BCST m64 k xmm
|
|
// VCVTTPD2UDQY.BCST m64 xmm
|
|
func VCVTTPD2UDQY_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPD2UDQY.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VCVTTPD2UDQY_BCST_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPD2UDQY.BCST.Z m64 k xmm
|
|
func VCVTTPD2UDQY_BCST_Z(m, k, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPD2UDQY.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, x})
|
|
}
|
|
|
|
// VCVTTPD2UDQY_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPD2UDQY.Z m256 k xmm
|
|
// VCVTTPD2UDQY.Z ymm k xmm
|
|
func VCVTTPD2UDQY_Z(my, k, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPD2UDQY.Forms(), sffxs{sffxZ}, []operand.Op{my, k, x})
|
|
}
|
|
|
|
// VCVTTPD2UDQ_BCST: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPD2UDQ.BCST m64 k ymm
|
|
// VCVTTPD2UDQ.BCST m64 ymm
|
|
func VCVTTPD2UDQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPD2UDQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VCVTTPD2UDQ_BCST_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPD2UDQ.BCST.Z m64 k ymm
|
|
func VCVTTPD2UDQ_BCST_Z(m, k, y operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPD2UDQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, y})
|
|
}
|
|
|
|
// VCVTTPD2UDQ_SAE: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPD2UDQ.SAE zmm k ymm
|
|
// VCVTTPD2UDQ.SAE zmm ymm
|
|
func VCVTTPD2UDQ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPD2UDQ.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VCVTTPD2UDQ_SAE_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Suppress All Exceptions, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPD2UDQ.SAE.Z zmm k ymm
|
|
func VCVTTPD2UDQ_SAE_Z(z, k, y operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPD2UDQ.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{z, k, y})
|
|
}
|
|
|
|
// VCVTTPD2UDQ_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPD2UDQ.Z m512 k ymm
|
|
// VCVTTPD2UDQ.Z zmm k ymm
|
|
func VCVTTPD2UDQ_Z(mz, k, y operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPD2UDQ.Forms(), sffxs{sffxZ}, []operand.Op{mz, k, y})
|
|
}
|
|
|
|
// VCVTTPD2UQQ: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPD2UQQ m128 k xmm
|
|
// VCVTTPD2UQQ m128 xmm
|
|
// VCVTTPD2UQQ m256 k ymm
|
|
// VCVTTPD2UQQ m256 ymm
|
|
// VCVTTPD2UQQ xmm k xmm
|
|
// VCVTTPD2UQQ xmm xmm
|
|
// VCVTTPD2UQQ ymm k ymm
|
|
// VCVTTPD2UQQ ymm ymm
|
|
// VCVTTPD2UQQ m512 k zmm
|
|
// VCVTTPD2UQQ m512 zmm
|
|
// VCVTTPD2UQQ zmm k zmm
|
|
// VCVTTPD2UQQ zmm zmm
|
|
func VCVTTPD2UQQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPD2UQQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VCVTTPD2UQQ_BCST: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPD2UQQ.BCST m64 k xmm
|
|
// VCVTTPD2UQQ.BCST m64 k ymm
|
|
// VCVTTPD2UQQ.BCST m64 xmm
|
|
// VCVTTPD2UQQ.BCST m64 ymm
|
|
// VCVTTPD2UQQ.BCST m64 k zmm
|
|
// VCVTTPD2UQQ.BCST m64 zmm
|
|
func VCVTTPD2UQQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPD2UQQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VCVTTPD2UQQ_BCST_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPD2UQQ.BCST.Z m64 k xmm
|
|
// VCVTTPD2UQQ.BCST.Z m64 k ymm
|
|
// VCVTTPD2UQQ.BCST.Z m64 k zmm
|
|
func VCVTTPD2UQQ_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPD2UQQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz})
|
|
}
|
|
|
|
// VCVTTPD2UQQ_SAE: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPD2UQQ.SAE zmm k zmm
|
|
// VCVTTPD2UQQ.SAE zmm zmm
|
|
func VCVTTPD2UQQ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPD2UQQ.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VCVTTPD2UQQ_SAE_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Suppress All Exceptions, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPD2UQQ.SAE.Z zmm k zmm
|
|
func VCVTTPD2UQQ_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPD2UQQ.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VCVTTPD2UQQ_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPD2UQQ.Z m128 k xmm
|
|
// VCVTTPD2UQQ.Z m256 k ymm
|
|
// VCVTTPD2UQQ.Z xmm k xmm
|
|
// VCVTTPD2UQQ.Z ymm k ymm
|
|
// VCVTTPD2UQQ.Z m512 k zmm
|
|
// VCVTTPD2UQQ.Z zmm k zmm
|
|
func VCVTTPD2UQQ_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPD2UQQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz})
|
|
}
|
|
|
|
// VCVTTPS2DQ: Convert with Truncation Packed Single-Precision FP Values to Packed Dword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPS2DQ m128 xmm
|
|
// VCVTTPS2DQ m256 ymm
|
|
// VCVTTPS2DQ xmm xmm
|
|
// VCVTTPS2DQ ymm ymm
|
|
// VCVTTPS2DQ m128 k xmm
|
|
// VCVTTPS2DQ m256 k ymm
|
|
// VCVTTPS2DQ xmm k xmm
|
|
// VCVTTPS2DQ ymm k ymm
|
|
// VCVTTPS2DQ m512 k zmm
|
|
// VCVTTPS2DQ m512 zmm
|
|
// VCVTTPS2DQ zmm k zmm
|
|
// VCVTTPS2DQ zmm zmm
|
|
func VCVTTPS2DQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPS2DQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VCVTTPS2DQ_BCST: Convert with Truncation Packed Single-Precision FP Values to Packed Dword Integers (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPS2DQ.BCST m32 k xmm
|
|
// VCVTTPS2DQ.BCST m32 k ymm
|
|
// VCVTTPS2DQ.BCST m32 xmm
|
|
// VCVTTPS2DQ.BCST m32 ymm
|
|
// VCVTTPS2DQ.BCST m32 k zmm
|
|
// VCVTTPS2DQ.BCST m32 zmm
|
|
func VCVTTPS2DQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPS2DQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VCVTTPS2DQ_BCST_Z: Convert with Truncation Packed Single-Precision FP Values to Packed Dword Integers (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPS2DQ.BCST.Z m32 k xmm
|
|
// VCVTTPS2DQ.BCST.Z m32 k ymm
|
|
// VCVTTPS2DQ.BCST.Z m32 k zmm
|
|
func VCVTTPS2DQ_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPS2DQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz})
|
|
}
|
|
|
|
// VCVTTPS2DQ_SAE: Convert with Truncation Packed Single-Precision FP Values to Packed Dword Integers (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPS2DQ.SAE zmm k zmm
|
|
// VCVTTPS2DQ.SAE zmm zmm
|
|
func VCVTTPS2DQ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPS2DQ.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VCVTTPS2DQ_SAE_Z: Convert with Truncation Packed Single-Precision FP Values to Packed Dword Integers (Suppress All Exceptions, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPS2DQ.SAE.Z zmm k zmm
|
|
func VCVTTPS2DQ_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPS2DQ.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VCVTTPS2DQ_Z: Convert with Truncation Packed Single-Precision FP Values to Packed Dword Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPS2DQ.Z m128 k xmm
|
|
// VCVTTPS2DQ.Z m256 k ymm
|
|
// VCVTTPS2DQ.Z xmm k xmm
|
|
// VCVTTPS2DQ.Z ymm k ymm
|
|
// VCVTTPS2DQ.Z m512 k zmm
|
|
// VCVTTPS2DQ.Z zmm k zmm
|
|
func VCVTTPS2DQ_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPS2DQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz})
|
|
}
|
|
|
|
// VCVTTPS2QQ: Convert with Truncation Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPS2QQ m128 k ymm
|
|
// VCVTTPS2QQ m128 ymm
|
|
// VCVTTPS2QQ m64 k xmm
|
|
// VCVTTPS2QQ m64 xmm
|
|
// VCVTTPS2QQ xmm k xmm
|
|
// VCVTTPS2QQ xmm k ymm
|
|
// VCVTTPS2QQ xmm xmm
|
|
// VCVTTPS2QQ xmm ymm
|
|
// VCVTTPS2QQ m256 k zmm
|
|
// VCVTTPS2QQ m256 zmm
|
|
// VCVTTPS2QQ ymm k zmm
|
|
// VCVTTPS2QQ ymm zmm
|
|
func VCVTTPS2QQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPS2QQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VCVTTPS2QQ_BCST: Convert with Truncation Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPS2QQ.BCST m32 k xmm
|
|
// VCVTTPS2QQ.BCST m32 k ymm
|
|
// VCVTTPS2QQ.BCST m32 xmm
|
|
// VCVTTPS2QQ.BCST m32 ymm
|
|
// VCVTTPS2QQ.BCST m32 k zmm
|
|
// VCVTTPS2QQ.BCST m32 zmm
|
|
func VCVTTPS2QQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPS2QQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VCVTTPS2QQ_BCST_Z: Convert with Truncation Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPS2QQ.BCST.Z m32 k xmm
|
|
// VCVTTPS2QQ.BCST.Z m32 k ymm
|
|
// VCVTTPS2QQ.BCST.Z m32 k zmm
|
|
func VCVTTPS2QQ_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPS2QQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz})
|
|
}
|
|
|
|
// VCVTTPS2QQ_SAE: Convert with Truncation Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPS2QQ.SAE ymm k zmm
|
|
// VCVTTPS2QQ.SAE ymm zmm
|
|
func VCVTTPS2QQ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPS2QQ.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VCVTTPS2QQ_SAE_Z: Convert with Truncation Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Suppress All Exceptions, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPS2QQ.SAE.Z ymm k zmm
|
|
func VCVTTPS2QQ_SAE_Z(y, k, z operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPS2QQ.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{y, k, z})
|
|
}
|
|
|
|
// VCVTTPS2QQ_Z: Convert with Truncation Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPS2QQ.Z m128 k ymm
|
|
// VCVTTPS2QQ.Z m64 k xmm
|
|
// VCVTTPS2QQ.Z xmm k xmm
|
|
// VCVTTPS2QQ.Z xmm k ymm
|
|
// VCVTTPS2QQ.Z m256 k zmm
|
|
// VCVTTPS2QQ.Z ymm k zmm
|
|
func VCVTTPS2QQ_Z(mxy, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPS2QQ.Forms(), sffxs{sffxZ}, []operand.Op{mxy, k, xyz})
|
|
}
|
|
|
|
// VCVTTPS2UDQ: Convert with Truncation Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPS2UDQ m128 k xmm
|
|
// VCVTTPS2UDQ m128 xmm
|
|
// VCVTTPS2UDQ m256 k ymm
|
|
// VCVTTPS2UDQ m256 ymm
|
|
// VCVTTPS2UDQ xmm k xmm
|
|
// VCVTTPS2UDQ xmm xmm
|
|
// VCVTTPS2UDQ ymm k ymm
|
|
// VCVTTPS2UDQ ymm ymm
|
|
// VCVTTPS2UDQ m512 k zmm
|
|
// VCVTTPS2UDQ m512 zmm
|
|
// VCVTTPS2UDQ zmm k zmm
|
|
// VCVTTPS2UDQ zmm zmm
|
|
func VCVTTPS2UDQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPS2UDQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VCVTTPS2UDQ_BCST: Convert with Truncation Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPS2UDQ.BCST m32 k xmm
|
|
// VCVTTPS2UDQ.BCST m32 k ymm
|
|
// VCVTTPS2UDQ.BCST m32 xmm
|
|
// VCVTTPS2UDQ.BCST m32 ymm
|
|
// VCVTTPS2UDQ.BCST m32 k zmm
|
|
// VCVTTPS2UDQ.BCST m32 zmm
|
|
func VCVTTPS2UDQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPS2UDQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VCVTTPS2UDQ_BCST_Z: Convert with Truncation Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPS2UDQ.BCST.Z m32 k xmm
|
|
// VCVTTPS2UDQ.BCST.Z m32 k ymm
|
|
// VCVTTPS2UDQ.BCST.Z m32 k zmm
|
|
func VCVTTPS2UDQ_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPS2UDQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz})
|
|
}
|
|
|
|
// VCVTTPS2UDQ_SAE: Convert with Truncation Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPS2UDQ.SAE zmm k zmm
|
|
// VCVTTPS2UDQ.SAE zmm zmm
|
|
func VCVTTPS2UDQ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPS2UDQ.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VCVTTPS2UDQ_SAE_Z: Convert with Truncation Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Suppress All Exceptions, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPS2UDQ.SAE.Z zmm k zmm
|
|
func VCVTTPS2UDQ_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPS2UDQ.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VCVTTPS2UDQ_Z: Convert with Truncation Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPS2UDQ.Z m128 k xmm
|
|
// VCVTTPS2UDQ.Z m256 k ymm
|
|
// VCVTTPS2UDQ.Z xmm k xmm
|
|
// VCVTTPS2UDQ.Z ymm k ymm
|
|
// VCVTTPS2UDQ.Z m512 k zmm
|
|
// VCVTTPS2UDQ.Z zmm k zmm
|
|
func VCVTTPS2UDQ_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPS2UDQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz})
|
|
}
|
|
|
|
// VCVTTPS2UQQ: Convert with Truncation Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPS2UQQ m128 k ymm
|
|
// VCVTTPS2UQQ m128 ymm
|
|
// VCVTTPS2UQQ m64 k xmm
|
|
// VCVTTPS2UQQ m64 xmm
|
|
// VCVTTPS2UQQ xmm k xmm
|
|
// VCVTTPS2UQQ xmm k ymm
|
|
// VCVTTPS2UQQ xmm xmm
|
|
// VCVTTPS2UQQ xmm ymm
|
|
// VCVTTPS2UQQ m256 k zmm
|
|
// VCVTTPS2UQQ m256 zmm
|
|
// VCVTTPS2UQQ ymm k zmm
|
|
// VCVTTPS2UQQ ymm zmm
|
|
func VCVTTPS2UQQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPS2UQQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VCVTTPS2UQQ_BCST: Convert with Truncation Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPS2UQQ.BCST m32 k xmm
|
|
// VCVTTPS2UQQ.BCST m32 k ymm
|
|
// VCVTTPS2UQQ.BCST m32 xmm
|
|
// VCVTTPS2UQQ.BCST m32 ymm
|
|
// VCVTTPS2UQQ.BCST m32 k zmm
|
|
// VCVTTPS2UQQ.BCST m32 zmm
|
|
func VCVTTPS2UQQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPS2UQQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VCVTTPS2UQQ_BCST_Z: Convert with Truncation Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPS2UQQ.BCST.Z m32 k xmm
|
|
// VCVTTPS2UQQ.BCST.Z m32 k ymm
|
|
// VCVTTPS2UQQ.BCST.Z m32 k zmm
|
|
func VCVTTPS2UQQ_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPS2UQQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz})
|
|
}
|
|
|
|
// VCVTTPS2UQQ_SAE: Convert with Truncation Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPS2UQQ.SAE ymm k zmm
|
|
// VCVTTPS2UQQ.SAE ymm zmm
|
|
func VCVTTPS2UQQ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPS2UQQ.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VCVTTPS2UQQ_SAE_Z: Convert with Truncation Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Suppress All Exceptions, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPS2UQQ.SAE.Z ymm k zmm
|
|
func VCVTTPS2UQQ_SAE_Z(y, k, z operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPS2UQQ.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{y, k, z})
|
|
}
|
|
|
|
// VCVTTPS2UQQ_Z: Convert with Truncation Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTPS2UQQ.Z m128 k ymm
|
|
// VCVTTPS2UQQ.Z m64 k xmm
|
|
// VCVTTPS2UQQ.Z xmm k xmm
|
|
// VCVTTPS2UQQ.Z xmm k ymm
|
|
// VCVTTPS2UQQ.Z m256 k zmm
|
|
// VCVTTPS2UQQ.Z ymm k zmm
|
|
func VCVTTPS2UQQ_Z(mxy, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTPS2UQQ.Forms(), sffxs{sffxZ}, []operand.Op{mxy, k, xyz})
|
|
}
|
|
|
|
// VCVTTSD2SI: Convert with Truncation Scalar Double-Precision FP Value to Signed Integer.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTSD2SI m64 r32
|
|
// VCVTTSD2SI xmm r32
|
|
func VCVTTSD2SI(mx, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTSD2SI.Forms(), sffxs{}, []operand.Op{mx, r})
|
|
}
|
|
|
|
// VCVTTSD2SIQ: Convert with Truncation Scalar Double-Precision FP Value to Signed Integer.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTSD2SIQ m64 r64
|
|
// VCVTTSD2SIQ xmm r64
|
|
func VCVTTSD2SIQ(mx, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTSD2SIQ.Forms(), sffxs{}, []operand.Op{mx, r})
|
|
}
|
|
|
|
// VCVTTSD2SIQ_SAE: Convert with Truncation Scalar Double-Precision FP Value to Signed Integer (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTSD2SIQ.SAE xmm r64
|
|
func VCVTTSD2SIQ_SAE(x, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTSD2SIQ.Forms(), sffxs{sffxSAE}, []operand.Op{x, r})
|
|
}
|
|
|
|
// VCVTTSD2SI_SAE: Convert with Truncation Scalar Double-Precision FP Value to Signed Integer (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTSD2SI.SAE xmm r32
|
|
func VCVTTSD2SI_SAE(x, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTSD2SI.Forms(), sffxs{sffxSAE}, []operand.Op{x, r})
|
|
}
|
|
|
|
// VCVTTSD2USIL: Convert with Truncation Scalar Double-Precision Floating-Point Value to Unsigned Integer.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTSD2USIL m64 r32
|
|
// VCVTTSD2USIL xmm r32
|
|
func VCVTTSD2USIL(mx, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTSD2USIL.Forms(), sffxs{}, []operand.Op{mx, r})
|
|
}
|
|
|
|
// VCVTTSD2USIL_SAE: Convert with Truncation Scalar Double-Precision Floating-Point Value to Unsigned Integer (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTSD2USIL.SAE xmm r32
|
|
func VCVTTSD2USIL_SAE(x, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTSD2USIL.Forms(), sffxs{sffxSAE}, []operand.Op{x, r})
|
|
}
|
|
|
|
// VCVTTSD2USIQ: Convert with Truncation Scalar Double-Precision Floating-Point Value to Unsigned Integer.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTSD2USIQ m64 r64
|
|
// VCVTTSD2USIQ xmm r64
|
|
func VCVTTSD2USIQ(mx, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTSD2USIQ.Forms(), sffxs{}, []operand.Op{mx, r})
|
|
}
|
|
|
|
// VCVTTSD2USIQ_SAE: Convert with Truncation Scalar Double-Precision Floating-Point Value to Unsigned Integer (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTSD2USIQ.SAE xmm r64
|
|
func VCVTTSD2USIQ_SAE(x, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTSD2USIQ.Forms(), sffxs{sffxSAE}, []operand.Op{x, r})
|
|
}
|
|
|
|
// VCVTTSS2SI: Convert with Truncation Scalar Single-Precision FP Value to Dword Integer.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTSS2SI m32 r32
|
|
// VCVTTSS2SI xmm r32
|
|
func VCVTTSS2SI(mx, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTSS2SI.Forms(), sffxs{}, []operand.Op{mx, r})
|
|
}
|
|
|
|
// VCVTTSS2SIQ: Convert with Truncation Scalar Single-Precision FP Value to Dword Integer.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTSS2SIQ m32 r64
|
|
// VCVTTSS2SIQ xmm r64
|
|
func VCVTTSS2SIQ(mx, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTSS2SIQ.Forms(), sffxs{}, []operand.Op{mx, r})
|
|
}
|
|
|
|
// VCVTTSS2SIQ_SAE: Convert with Truncation Scalar Single-Precision FP Value to Dword Integer (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTSS2SIQ.SAE xmm r64
|
|
func VCVTTSS2SIQ_SAE(x, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTSS2SIQ.Forms(), sffxs{sffxSAE}, []operand.Op{x, r})
|
|
}
|
|
|
|
// VCVTTSS2SI_SAE: Convert with Truncation Scalar Single-Precision FP Value to Dword Integer (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTSS2SI.SAE xmm r32
|
|
func VCVTTSS2SI_SAE(x, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTSS2SI.Forms(), sffxs{sffxSAE}, []operand.Op{x, r})
|
|
}
|
|
|
|
// VCVTTSS2USIL: Convert with Truncation Scalar Single-Precision Floating-Point Value to Unsigned Integer.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTSS2USIL m32 r32
|
|
// VCVTTSS2USIL xmm r32
|
|
func VCVTTSS2USIL(mx, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTSS2USIL.Forms(), sffxs{}, []operand.Op{mx, r})
|
|
}
|
|
|
|
// VCVTTSS2USIL_SAE: Convert with Truncation Scalar Single-Precision Floating-Point Value to Unsigned Integer (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTSS2USIL.SAE xmm r32
|
|
func VCVTTSS2USIL_SAE(x, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTSS2USIL.Forms(), sffxs{sffxSAE}, []operand.Op{x, r})
|
|
}
|
|
|
|
// VCVTTSS2USIQ: Convert with Truncation Scalar Single-Precision Floating-Point Value to Unsigned Integer.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTSS2USIQ m32 r64
|
|
// VCVTTSS2USIQ xmm r64
|
|
func VCVTTSS2USIQ(mx, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTSS2USIQ.Forms(), sffxs{}, []operand.Op{mx, r})
|
|
}
|
|
|
|
// VCVTTSS2USIQ_SAE: Convert with Truncation Scalar Single-Precision Floating-Point Value to Unsigned Integer (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTTSS2USIQ.SAE xmm r64
|
|
func VCVTTSS2USIQ_SAE(x, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTTSS2USIQ.Forms(), sffxs{sffxSAE}, []operand.Op{x, r})
|
|
}
|
|
|
|
// VCVTUDQ2PD: Convert Packed Unsigned Doubleword Integers to Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUDQ2PD m128 k ymm
|
|
// VCVTUDQ2PD m128 ymm
|
|
// VCVTUDQ2PD m64 k xmm
|
|
// VCVTUDQ2PD m64 xmm
|
|
// VCVTUDQ2PD xmm k xmm
|
|
// VCVTUDQ2PD xmm k ymm
|
|
// VCVTUDQ2PD xmm xmm
|
|
// VCVTUDQ2PD xmm ymm
|
|
// VCVTUDQ2PD m256 k zmm
|
|
// VCVTUDQ2PD m256 zmm
|
|
// VCVTUDQ2PD ymm k zmm
|
|
// VCVTUDQ2PD ymm zmm
|
|
func VCVTUDQ2PD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUDQ2PD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VCVTUDQ2PD_BCST: Convert Packed Unsigned Doubleword Integers to Packed Double-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUDQ2PD.BCST m32 k xmm
|
|
// VCVTUDQ2PD.BCST m32 k ymm
|
|
// VCVTUDQ2PD.BCST m32 xmm
|
|
// VCVTUDQ2PD.BCST m32 ymm
|
|
// VCVTUDQ2PD.BCST m32 k zmm
|
|
// VCVTUDQ2PD.BCST m32 zmm
|
|
func VCVTUDQ2PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUDQ2PD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VCVTUDQ2PD_BCST_Z: Convert Packed Unsigned Doubleword Integers to Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUDQ2PD.BCST.Z m32 k xmm
|
|
// VCVTUDQ2PD.BCST.Z m32 k ymm
|
|
// VCVTUDQ2PD.BCST.Z m32 k zmm
|
|
func VCVTUDQ2PD_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUDQ2PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz})
|
|
}
|
|
|
|
// VCVTUDQ2PD_Z: Convert Packed Unsigned Doubleword Integers to Packed Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUDQ2PD.Z m128 k ymm
|
|
// VCVTUDQ2PD.Z m64 k xmm
|
|
// VCVTUDQ2PD.Z xmm k xmm
|
|
// VCVTUDQ2PD.Z xmm k ymm
|
|
// VCVTUDQ2PD.Z m256 k zmm
|
|
// VCVTUDQ2PD.Z ymm k zmm
|
|
func VCVTUDQ2PD_Z(mxy, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUDQ2PD.Forms(), sffxs{sffxZ}, []operand.Op{mxy, k, xyz})
|
|
}
|
|
|
|
// VCVTUDQ2PS: Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUDQ2PS m128 k xmm
|
|
// VCVTUDQ2PS m128 xmm
|
|
// VCVTUDQ2PS m256 k ymm
|
|
// VCVTUDQ2PS m256 ymm
|
|
// VCVTUDQ2PS xmm k xmm
|
|
// VCVTUDQ2PS xmm xmm
|
|
// VCVTUDQ2PS ymm k ymm
|
|
// VCVTUDQ2PS ymm ymm
|
|
// VCVTUDQ2PS m512 k zmm
|
|
// VCVTUDQ2PS m512 zmm
|
|
// VCVTUDQ2PS zmm k zmm
|
|
// VCVTUDQ2PS zmm zmm
|
|
func VCVTUDQ2PS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUDQ2PS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VCVTUDQ2PS_BCST: Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUDQ2PS.BCST m32 k xmm
|
|
// VCVTUDQ2PS.BCST m32 k ymm
|
|
// VCVTUDQ2PS.BCST m32 xmm
|
|
// VCVTUDQ2PS.BCST m32 ymm
|
|
// VCVTUDQ2PS.BCST m32 k zmm
|
|
// VCVTUDQ2PS.BCST m32 zmm
|
|
func VCVTUDQ2PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUDQ2PS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VCVTUDQ2PS_BCST_Z: Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUDQ2PS.BCST.Z m32 k xmm
|
|
// VCVTUDQ2PS.BCST.Z m32 k ymm
|
|
// VCVTUDQ2PS.BCST.Z m32 k zmm
|
|
func VCVTUDQ2PS_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUDQ2PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz})
|
|
}
|
|
|
|
// VCVTUDQ2PS_RD_SAE: Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUDQ2PS.RD_SAE zmm k zmm
|
|
// VCVTUDQ2PS.RD_SAE zmm zmm
|
|
func VCVTUDQ2PS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUDQ2PS.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VCVTUDQ2PS_RD_SAE_Z: Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUDQ2PS.RD_SAE.Z zmm k zmm
|
|
func VCVTUDQ2PS_RD_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUDQ2PS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VCVTUDQ2PS_RN_SAE: Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUDQ2PS.RN_SAE zmm k zmm
|
|
// VCVTUDQ2PS.RN_SAE zmm zmm
|
|
func VCVTUDQ2PS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUDQ2PS.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VCVTUDQ2PS_RN_SAE_Z: Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUDQ2PS.RN_SAE.Z zmm k zmm
|
|
func VCVTUDQ2PS_RN_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUDQ2PS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VCVTUDQ2PS_RU_SAE: Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUDQ2PS.RU_SAE zmm k zmm
|
|
// VCVTUDQ2PS.RU_SAE zmm zmm
|
|
func VCVTUDQ2PS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUDQ2PS.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VCVTUDQ2PS_RU_SAE_Z: Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUDQ2PS.RU_SAE.Z zmm k zmm
|
|
func VCVTUDQ2PS_RU_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUDQ2PS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VCVTUDQ2PS_RZ_SAE: Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUDQ2PS.RZ_SAE zmm k zmm
|
|
// VCVTUDQ2PS.RZ_SAE zmm zmm
|
|
func VCVTUDQ2PS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUDQ2PS.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VCVTUDQ2PS_RZ_SAE_Z: Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUDQ2PS.RZ_SAE.Z zmm k zmm
|
|
func VCVTUDQ2PS_RZ_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUDQ2PS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VCVTUDQ2PS_Z: Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUDQ2PS.Z m128 k xmm
|
|
// VCVTUDQ2PS.Z m256 k ymm
|
|
// VCVTUDQ2PS.Z xmm k xmm
|
|
// VCVTUDQ2PS.Z ymm k ymm
|
|
// VCVTUDQ2PS.Z m512 k zmm
|
|
// VCVTUDQ2PS.Z zmm k zmm
|
|
func VCVTUDQ2PS_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUDQ2PS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz})
|
|
}
|
|
|
|
// VCVTUQQ2PD: Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUQQ2PD m128 k xmm
|
|
// VCVTUQQ2PD m128 xmm
|
|
// VCVTUQQ2PD m256 k ymm
|
|
// VCVTUQQ2PD m256 ymm
|
|
// VCVTUQQ2PD xmm k xmm
|
|
// VCVTUQQ2PD xmm xmm
|
|
// VCVTUQQ2PD ymm k ymm
|
|
// VCVTUQQ2PD ymm ymm
|
|
// VCVTUQQ2PD m512 k zmm
|
|
// VCVTUQQ2PD m512 zmm
|
|
// VCVTUQQ2PD zmm k zmm
|
|
// VCVTUQQ2PD zmm zmm
|
|
func VCVTUQQ2PD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUQQ2PD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VCVTUQQ2PD_BCST: Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUQQ2PD.BCST m64 k xmm
|
|
// VCVTUQQ2PD.BCST m64 k ymm
|
|
// VCVTUQQ2PD.BCST m64 xmm
|
|
// VCVTUQQ2PD.BCST m64 ymm
|
|
// VCVTUQQ2PD.BCST m64 k zmm
|
|
// VCVTUQQ2PD.BCST m64 zmm
|
|
func VCVTUQQ2PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUQQ2PD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VCVTUQQ2PD_BCST_Z: Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUQQ2PD.BCST.Z m64 k xmm
|
|
// VCVTUQQ2PD.BCST.Z m64 k ymm
|
|
// VCVTUQQ2PD.BCST.Z m64 k zmm
|
|
func VCVTUQQ2PD_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUQQ2PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz})
|
|
}
|
|
|
|
// VCVTUQQ2PD_RD_SAE: Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUQQ2PD.RD_SAE zmm k zmm
|
|
// VCVTUQQ2PD.RD_SAE zmm zmm
|
|
func VCVTUQQ2PD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUQQ2PD.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VCVTUQQ2PD_RD_SAE_Z: Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUQQ2PD.RD_SAE.Z zmm k zmm
|
|
func VCVTUQQ2PD_RD_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUQQ2PD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VCVTUQQ2PD_RN_SAE: Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUQQ2PD.RN_SAE zmm k zmm
|
|
// VCVTUQQ2PD.RN_SAE zmm zmm
|
|
func VCVTUQQ2PD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUQQ2PD.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VCVTUQQ2PD_RN_SAE_Z: Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUQQ2PD.RN_SAE.Z zmm k zmm
|
|
func VCVTUQQ2PD_RN_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUQQ2PD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VCVTUQQ2PD_RU_SAE: Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUQQ2PD.RU_SAE zmm k zmm
|
|
// VCVTUQQ2PD.RU_SAE zmm zmm
|
|
func VCVTUQQ2PD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUQQ2PD.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VCVTUQQ2PD_RU_SAE_Z: Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUQQ2PD.RU_SAE.Z zmm k zmm
|
|
func VCVTUQQ2PD_RU_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUQQ2PD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VCVTUQQ2PD_RZ_SAE: Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUQQ2PD.RZ_SAE zmm k zmm
|
|
// VCVTUQQ2PD.RZ_SAE zmm zmm
|
|
func VCVTUQQ2PD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUQQ2PD.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VCVTUQQ2PD_RZ_SAE_Z: Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUQQ2PD.RZ_SAE.Z zmm k zmm
|
|
func VCVTUQQ2PD_RZ_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUQQ2PD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VCVTUQQ2PD_Z: Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUQQ2PD.Z m128 k xmm
|
|
// VCVTUQQ2PD.Z m256 k ymm
|
|
// VCVTUQQ2PD.Z xmm k xmm
|
|
// VCVTUQQ2PD.Z ymm k ymm
|
|
// VCVTUQQ2PD.Z m512 k zmm
|
|
// VCVTUQQ2PD.Z zmm k zmm
|
|
func VCVTUQQ2PD_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUQQ2PD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz})
|
|
}
|
|
|
|
// VCVTUQQ2PS: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUQQ2PS m512 k ymm
|
|
// VCVTUQQ2PS m512 ymm
|
|
// VCVTUQQ2PS zmm k ymm
|
|
// VCVTUQQ2PS zmm ymm
|
|
func VCVTUQQ2PS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUQQ2PS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VCVTUQQ2PSX: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUQQ2PSX m128 k xmm
|
|
// VCVTUQQ2PSX m128 xmm
|
|
// VCVTUQQ2PSX xmm k xmm
|
|
// VCVTUQQ2PSX xmm xmm
|
|
func VCVTUQQ2PSX(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUQQ2PSX.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VCVTUQQ2PSX_BCST: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUQQ2PSX.BCST m64 k xmm
|
|
// VCVTUQQ2PSX.BCST m64 xmm
|
|
func VCVTUQQ2PSX_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUQQ2PSX.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VCVTUQQ2PSX_BCST_Z: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUQQ2PSX.BCST.Z m64 k xmm
|
|
func VCVTUQQ2PSX_BCST_Z(m, k, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUQQ2PSX.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, x})
|
|
}
|
|
|
|
// VCVTUQQ2PSX_Z: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUQQ2PSX.Z m128 k xmm
|
|
// VCVTUQQ2PSX.Z xmm k xmm
|
|
func VCVTUQQ2PSX_Z(mx, k, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUQQ2PSX.Forms(), sffxs{sffxZ}, []operand.Op{mx, k, x})
|
|
}
|
|
|
|
// VCVTUQQ2PSY: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUQQ2PSY m256 k xmm
|
|
// VCVTUQQ2PSY m256 xmm
|
|
// VCVTUQQ2PSY ymm k xmm
|
|
// VCVTUQQ2PSY ymm xmm
|
|
func VCVTUQQ2PSY(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUQQ2PSY.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VCVTUQQ2PSY_BCST: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUQQ2PSY.BCST m64 k xmm
|
|
// VCVTUQQ2PSY.BCST m64 xmm
|
|
func VCVTUQQ2PSY_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUQQ2PSY.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VCVTUQQ2PSY_BCST_Z: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUQQ2PSY.BCST.Z m64 k xmm
|
|
func VCVTUQQ2PSY_BCST_Z(m, k, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUQQ2PSY.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, x})
|
|
}
|
|
|
|
// VCVTUQQ2PSY_Z: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUQQ2PSY.Z m256 k xmm
|
|
// VCVTUQQ2PSY.Z ymm k xmm
|
|
func VCVTUQQ2PSY_Z(my, k, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUQQ2PSY.Forms(), sffxs{sffxZ}, []operand.Op{my, k, x})
|
|
}
|
|
|
|
// VCVTUQQ2PS_BCST: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUQQ2PS.BCST m64 k ymm
|
|
// VCVTUQQ2PS.BCST m64 ymm
|
|
func VCVTUQQ2PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUQQ2PS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VCVTUQQ2PS_BCST_Z: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUQQ2PS.BCST.Z m64 k ymm
|
|
func VCVTUQQ2PS_BCST_Z(m, k, y operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUQQ2PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, y})
|
|
}
|
|
|
|
// VCVTUQQ2PS_RD_SAE: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUQQ2PS.RD_SAE zmm k ymm
|
|
// VCVTUQQ2PS.RD_SAE zmm ymm
|
|
func VCVTUQQ2PS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUQQ2PS.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VCVTUQQ2PS_RD_SAE_Z: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUQQ2PS.RD_SAE.Z zmm k ymm
|
|
func VCVTUQQ2PS_RD_SAE_Z(z, k, y operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUQQ2PS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, k, y})
|
|
}
|
|
|
|
// VCVTUQQ2PS_RN_SAE: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUQQ2PS.RN_SAE zmm k ymm
|
|
// VCVTUQQ2PS.RN_SAE zmm ymm
|
|
func VCVTUQQ2PS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUQQ2PS.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VCVTUQQ2PS_RN_SAE_Z: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUQQ2PS.RN_SAE.Z zmm k ymm
|
|
func VCVTUQQ2PS_RN_SAE_Z(z, k, y operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUQQ2PS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, k, y})
|
|
}
|
|
|
|
// VCVTUQQ2PS_RU_SAE: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUQQ2PS.RU_SAE zmm k ymm
|
|
// VCVTUQQ2PS.RU_SAE zmm ymm
|
|
func VCVTUQQ2PS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUQQ2PS.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VCVTUQQ2PS_RU_SAE_Z: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUQQ2PS.RU_SAE.Z zmm k ymm
|
|
func VCVTUQQ2PS_RU_SAE_Z(z, k, y operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUQQ2PS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, k, y})
|
|
}
|
|
|
|
// VCVTUQQ2PS_RZ_SAE: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUQQ2PS.RZ_SAE zmm k ymm
|
|
// VCVTUQQ2PS.RZ_SAE zmm ymm
|
|
func VCVTUQQ2PS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUQQ2PS.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VCVTUQQ2PS_RZ_SAE_Z: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUQQ2PS.RZ_SAE.Z zmm k ymm
|
|
func VCVTUQQ2PS_RZ_SAE_Z(z, k, y operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUQQ2PS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, k, y})
|
|
}
|
|
|
|
// VCVTUQQ2PS_Z: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUQQ2PS.Z m512 k ymm
|
|
// VCVTUQQ2PS.Z zmm k ymm
|
|
func VCVTUQQ2PS_Z(mz, k, y operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUQQ2PS.Forms(), sffxs{sffxZ}, []operand.Op{mz, k, y})
|
|
}
|
|
|
|
// VCVTUSI2SDL: Convert Unsigned Integer to Scalar Double-Precision Floating-Point Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUSI2SDL m32 xmm xmm
|
|
// VCVTUSI2SDL r32 xmm xmm
|
|
func VCVTUSI2SDL(mr, x, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUSI2SDL.Forms(), sffxs{}, []operand.Op{mr, x, x1})
|
|
}
|
|
|
|
// VCVTUSI2SDQ: Convert Unsigned Integer to Scalar Double-Precision Floating-Point Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUSI2SDQ m64 xmm xmm
|
|
// VCVTUSI2SDQ r64 xmm xmm
|
|
func VCVTUSI2SDQ(mr, x, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUSI2SDQ.Forms(), sffxs{}, []operand.Op{mr, x, x1})
|
|
}
|
|
|
|
// VCVTUSI2SDQ_RD_SAE: Convert Unsigned Integer to Scalar Double-Precision Floating-Point Value (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUSI2SDQ.RD_SAE r64 xmm xmm
|
|
func VCVTUSI2SDQ_RD_SAE(r, x, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUSI2SDQ.Forms(), sffxs{sffxRD_SAE}, []operand.Op{r, x, x1})
|
|
}
|
|
|
|
// VCVTUSI2SDQ_RN_SAE: Convert Unsigned Integer to Scalar Double-Precision Floating-Point Value (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUSI2SDQ.RN_SAE r64 xmm xmm
|
|
func VCVTUSI2SDQ_RN_SAE(r, x, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUSI2SDQ.Forms(), sffxs{sffxRN_SAE}, []operand.Op{r, x, x1})
|
|
}
|
|
|
|
// VCVTUSI2SDQ_RU_SAE: Convert Unsigned Integer to Scalar Double-Precision Floating-Point Value (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUSI2SDQ.RU_SAE r64 xmm xmm
|
|
func VCVTUSI2SDQ_RU_SAE(r, x, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUSI2SDQ.Forms(), sffxs{sffxRU_SAE}, []operand.Op{r, x, x1})
|
|
}
|
|
|
|
// VCVTUSI2SDQ_RZ_SAE: Convert Unsigned Integer to Scalar Double-Precision Floating-Point Value (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUSI2SDQ.RZ_SAE r64 xmm xmm
|
|
func VCVTUSI2SDQ_RZ_SAE(r, x, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUSI2SDQ.Forms(), sffxs{sffxRZ_SAE}, []operand.Op{r, x, x1})
|
|
}
|
|
|
|
// VCVTUSI2SSL: Convert Unsigned Integer to Scalar Single-Precision Floating-Point Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUSI2SSL m32 xmm xmm
|
|
// VCVTUSI2SSL r32 xmm xmm
|
|
func VCVTUSI2SSL(mr, x, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUSI2SSL.Forms(), sffxs{}, []operand.Op{mr, x, x1})
|
|
}
|
|
|
|
// VCVTUSI2SSL_RD_SAE: Convert Unsigned Integer to Scalar Single-Precision Floating-Point Value (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUSI2SSL.RD_SAE r32 xmm xmm
|
|
func VCVTUSI2SSL_RD_SAE(r, x, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUSI2SSL.Forms(), sffxs{sffxRD_SAE}, []operand.Op{r, x, x1})
|
|
}
|
|
|
|
// VCVTUSI2SSL_RN_SAE: Convert Unsigned Integer to Scalar Single-Precision Floating-Point Value (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUSI2SSL.RN_SAE r32 xmm xmm
|
|
func VCVTUSI2SSL_RN_SAE(r, x, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUSI2SSL.Forms(), sffxs{sffxRN_SAE}, []operand.Op{r, x, x1})
|
|
}
|
|
|
|
// VCVTUSI2SSL_RU_SAE: Convert Unsigned Integer to Scalar Single-Precision Floating-Point Value (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUSI2SSL.RU_SAE r32 xmm xmm
|
|
func VCVTUSI2SSL_RU_SAE(r, x, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUSI2SSL.Forms(), sffxs{sffxRU_SAE}, []operand.Op{r, x, x1})
|
|
}
|
|
|
|
// VCVTUSI2SSL_RZ_SAE: Convert Unsigned Integer to Scalar Single-Precision Floating-Point Value (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUSI2SSL.RZ_SAE r32 xmm xmm
|
|
func VCVTUSI2SSL_RZ_SAE(r, x, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUSI2SSL.Forms(), sffxs{sffxRZ_SAE}, []operand.Op{r, x, x1})
|
|
}
|
|
|
|
// VCVTUSI2SSQ: Convert Unsigned Integer to Scalar Single-Precision Floating-Point Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUSI2SSQ m64 xmm xmm
|
|
// VCVTUSI2SSQ r64 xmm xmm
|
|
func VCVTUSI2SSQ(mr, x, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUSI2SSQ.Forms(), sffxs{}, []operand.Op{mr, x, x1})
|
|
}
|
|
|
|
// VCVTUSI2SSQ_RD_SAE: Convert Unsigned Integer to Scalar Single-Precision Floating-Point Value (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUSI2SSQ.RD_SAE r64 xmm xmm
|
|
func VCVTUSI2SSQ_RD_SAE(r, x, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUSI2SSQ.Forms(), sffxs{sffxRD_SAE}, []operand.Op{r, x, x1})
|
|
}
|
|
|
|
// VCVTUSI2SSQ_RN_SAE: Convert Unsigned Integer to Scalar Single-Precision Floating-Point Value (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUSI2SSQ.RN_SAE r64 xmm xmm
|
|
func VCVTUSI2SSQ_RN_SAE(r, x, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUSI2SSQ.Forms(), sffxs{sffxRN_SAE}, []operand.Op{r, x, x1})
|
|
}
|
|
|
|
// VCVTUSI2SSQ_RU_SAE: Convert Unsigned Integer to Scalar Single-Precision Floating-Point Value (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUSI2SSQ.RU_SAE r64 xmm xmm
|
|
func VCVTUSI2SSQ_RU_SAE(r, x, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUSI2SSQ.Forms(), sffxs{sffxRU_SAE}, []operand.Op{r, x, x1})
|
|
}
|
|
|
|
// VCVTUSI2SSQ_RZ_SAE: Convert Unsigned Integer to Scalar Single-Precision Floating-Point Value (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VCVTUSI2SSQ.RZ_SAE r64 xmm xmm
|
|
func VCVTUSI2SSQ_RZ_SAE(r, x, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVCVTUSI2SSQ.Forms(), sffxs{sffxRZ_SAE}, []operand.Op{r, x, x1})
|
|
}
|
|
|
|
// VDBPSADBW: Double Block Packed Sum-Absolute-Differences on Unsigned Bytes.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VDBPSADBW imm8 m128 xmm k xmm
|
|
// VDBPSADBW imm8 m128 xmm xmm
|
|
// VDBPSADBW imm8 m256 ymm k ymm
|
|
// VDBPSADBW imm8 m256 ymm ymm
|
|
// VDBPSADBW imm8 xmm xmm k xmm
|
|
// VDBPSADBW imm8 xmm xmm xmm
|
|
// VDBPSADBW imm8 ymm ymm k ymm
|
|
// VDBPSADBW imm8 ymm ymm ymm
|
|
// VDBPSADBW imm8 m512 zmm k zmm
|
|
// VDBPSADBW imm8 m512 zmm zmm
|
|
// VDBPSADBW imm8 zmm zmm k zmm
|
|
// VDBPSADBW imm8 zmm zmm zmm
|
|
func VDBPSADBW(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVDBPSADBW.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VDBPSADBW_Z: Double Block Packed Sum-Absolute-Differences on Unsigned Bytes (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VDBPSADBW.Z imm8 m128 xmm k xmm
|
|
// VDBPSADBW.Z imm8 m256 ymm k ymm
|
|
// VDBPSADBW.Z imm8 xmm xmm k xmm
|
|
// VDBPSADBW.Z imm8 ymm ymm k ymm
|
|
// VDBPSADBW.Z imm8 m512 zmm k zmm
|
|
// VDBPSADBW.Z imm8 zmm zmm k zmm
|
|
func VDBPSADBW_Z(i, mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVDBPSADBW.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VDIVPD: Divide Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VDIVPD m128 xmm xmm
|
|
// VDIVPD m256 ymm ymm
|
|
// VDIVPD xmm xmm xmm
|
|
// VDIVPD ymm ymm ymm
|
|
// VDIVPD m128 xmm k xmm
|
|
// VDIVPD m256 ymm k ymm
|
|
// VDIVPD xmm xmm k xmm
|
|
// VDIVPD ymm ymm k ymm
|
|
// VDIVPD m512 zmm k zmm
|
|
// VDIVPD m512 zmm zmm
|
|
// VDIVPD zmm zmm k zmm
|
|
// VDIVPD zmm zmm zmm
|
|
func VDIVPD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVDIVPD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VDIVPD_BCST: Divide Packed Double-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VDIVPD.BCST m64 xmm k xmm
|
|
// VDIVPD.BCST m64 xmm xmm
|
|
// VDIVPD.BCST m64 ymm k ymm
|
|
// VDIVPD.BCST m64 ymm ymm
|
|
// VDIVPD.BCST m64 zmm k zmm
|
|
// VDIVPD.BCST m64 zmm zmm
|
|
func VDIVPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVDIVPD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VDIVPD_BCST_Z: Divide Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VDIVPD.BCST.Z m64 xmm k xmm
|
|
// VDIVPD.BCST.Z m64 ymm k ymm
|
|
// VDIVPD.BCST.Z m64 zmm k zmm
|
|
func VDIVPD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVDIVPD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VDIVPD_RD_SAE: Divide Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VDIVPD.RD_SAE zmm zmm k zmm
|
|
// VDIVPD.RD_SAE zmm zmm zmm
|
|
func VDIVPD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVDIVPD.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VDIVPD_RD_SAE_Z: Divide Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VDIVPD.RD_SAE.Z zmm zmm k zmm
|
|
func VDIVPD_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVDIVPD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VDIVPD_RN_SAE: Divide Packed Double-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VDIVPD.RN_SAE zmm zmm k zmm
|
|
// VDIVPD.RN_SAE zmm zmm zmm
|
|
func VDIVPD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVDIVPD.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VDIVPD_RN_SAE_Z: Divide Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VDIVPD.RN_SAE.Z zmm zmm k zmm
|
|
func VDIVPD_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVDIVPD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VDIVPD_RU_SAE: Divide Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VDIVPD.RU_SAE zmm zmm k zmm
|
|
// VDIVPD.RU_SAE zmm zmm zmm
|
|
func VDIVPD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVDIVPD.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VDIVPD_RU_SAE_Z: Divide Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VDIVPD.RU_SAE.Z zmm zmm k zmm
|
|
func VDIVPD_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVDIVPD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VDIVPD_RZ_SAE: Divide Packed Double-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VDIVPD.RZ_SAE zmm zmm k zmm
|
|
// VDIVPD.RZ_SAE zmm zmm zmm
|
|
func VDIVPD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVDIVPD.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VDIVPD_RZ_SAE_Z: Divide Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VDIVPD.RZ_SAE.Z zmm zmm k zmm
|
|
func VDIVPD_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVDIVPD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VDIVPD_Z: Divide Packed Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VDIVPD.Z m128 xmm k xmm
|
|
// VDIVPD.Z m256 ymm k ymm
|
|
// VDIVPD.Z xmm xmm k xmm
|
|
// VDIVPD.Z ymm ymm k ymm
|
|
// VDIVPD.Z m512 zmm k zmm
|
|
// VDIVPD.Z zmm zmm k zmm
|
|
func VDIVPD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVDIVPD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VDIVPS: Divide Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VDIVPS m128 xmm xmm
|
|
// VDIVPS m256 ymm ymm
|
|
// VDIVPS xmm xmm xmm
|
|
// VDIVPS ymm ymm ymm
|
|
// VDIVPS m128 xmm k xmm
|
|
// VDIVPS m256 ymm k ymm
|
|
// VDIVPS xmm xmm k xmm
|
|
// VDIVPS ymm ymm k ymm
|
|
// VDIVPS m512 zmm k zmm
|
|
// VDIVPS m512 zmm zmm
|
|
// VDIVPS zmm zmm k zmm
|
|
// VDIVPS zmm zmm zmm
|
|
func VDIVPS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVDIVPS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VDIVPS_BCST: Divide Packed Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VDIVPS.BCST m32 xmm k xmm
|
|
// VDIVPS.BCST m32 xmm xmm
|
|
// VDIVPS.BCST m32 ymm k ymm
|
|
// VDIVPS.BCST m32 ymm ymm
|
|
// VDIVPS.BCST m32 zmm k zmm
|
|
// VDIVPS.BCST m32 zmm zmm
|
|
func VDIVPS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVDIVPS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VDIVPS_BCST_Z: Divide Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VDIVPS.BCST.Z m32 xmm k xmm
|
|
// VDIVPS.BCST.Z m32 ymm k ymm
|
|
// VDIVPS.BCST.Z m32 zmm k zmm
|
|
func VDIVPS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVDIVPS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VDIVPS_RD_SAE: Divide Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VDIVPS.RD_SAE zmm zmm k zmm
|
|
// VDIVPS.RD_SAE zmm zmm zmm
|
|
func VDIVPS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVDIVPS.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VDIVPS_RD_SAE_Z: Divide Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VDIVPS.RD_SAE.Z zmm zmm k zmm
|
|
func VDIVPS_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVDIVPS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VDIVPS_RN_SAE: Divide Packed Single-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VDIVPS.RN_SAE zmm zmm k zmm
|
|
// VDIVPS.RN_SAE zmm zmm zmm
|
|
func VDIVPS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVDIVPS.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VDIVPS_RN_SAE_Z: Divide Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VDIVPS.RN_SAE.Z zmm zmm k zmm
|
|
func VDIVPS_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVDIVPS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VDIVPS_RU_SAE: Divide Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VDIVPS.RU_SAE zmm zmm k zmm
|
|
// VDIVPS.RU_SAE zmm zmm zmm
|
|
func VDIVPS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVDIVPS.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VDIVPS_RU_SAE_Z: Divide Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VDIVPS.RU_SAE.Z zmm zmm k zmm
|
|
func VDIVPS_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVDIVPS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VDIVPS_RZ_SAE: Divide Packed Single-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VDIVPS.RZ_SAE zmm zmm k zmm
|
|
// VDIVPS.RZ_SAE zmm zmm zmm
|
|
func VDIVPS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVDIVPS.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VDIVPS_RZ_SAE_Z: Divide Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VDIVPS.RZ_SAE.Z zmm zmm k zmm
|
|
func VDIVPS_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVDIVPS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VDIVPS_Z: Divide Packed Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VDIVPS.Z m128 xmm k xmm
|
|
// VDIVPS.Z m256 ymm k ymm
|
|
// VDIVPS.Z xmm xmm k xmm
|
|
// VDIVPS.Z ymm ymm k ymm
|
|
// VDIVPS.Z m512 zmm k zmm
|
|
// VDIVPS.Z zmm zmm k zmm
|
|
func VDIVPS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVDIVPS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VDIVSD: Divide Scalar Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VDIVSD m64 xmm xmm
|
|
// VDIVSD xmm xmm xmm
|
|
// VDIVSD m64 xmm k xmm
|
|
// VDIVSD xmm xmm k xmm
|
|
func VDIVSD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVDIVSD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VDIVSD_RD_SAE: Divide Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VDIVSD.RD_SAE xmm xmm k xmm
|
|
// VDIVSD.RD_SAE xmm xmm xmm
|
|
func VDIVSD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVDIVSD.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VDIVSD_RD_SAE_Z: Divide Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VDIVSD.RD_SAE.Z xmm xmm k xmm
|
|
func VDIVSD_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVDIVSD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VDIVSD_RN_SAE: Divide Scalar Double-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VDIVSD.RN_SAE xmm xmm k xmm
|
|
// VDIVSD.RN_SAE xmm xmm xmm
|
|
func VDIVSD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVDIVSD.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VDIVSD_RN_SAE_Z: Divide Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VDIVSD.RN_SAE.Z xmm xmm k xmm
|
|
func VDIVSD_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVDIVSD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VDIVSD_RU_SAE: Divide Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VDIVSD.RU_SAE xmm xmm k xmm
|
|
// VDIVSD.RU_SAE xmm xmm xmm
|
|
func VDIVSD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVDIVSD.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VDIVSD_RU_SAE_Z: Divide Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VDIVSD.RU_SAE.Z xmm xmm k xmm
|
|
func VDIVSD_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVDIVSD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VDIVSD_RZ_SAE: Divide Scalar Double-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VDIVSD.RZ_SAE xmm xmm k xmm
|
|
// VDIVSD.RZ_SAE xmm xmm xmm
|
|
func VDIVSD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVDIVSD.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VDIVSD_RZ_SAE_Z: Divide Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VDIVSD.RZ_SAE.Z xmm xmm k xmm
|
|
func VDIVSD_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVDIVSD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VDIVSD_Z: Divide Scalar Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VDIVSD.Z m64 xmm k xmm
|
|
// VDIVSD.Z xmm xmm k xmm
|
|
func VDIVSD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVDIVSD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VDIVSS: Divide Scalar Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VDIVSS m32 xmm xmm
|
|
// VDIVSS xmm xmm xmm
|
|
// VDIVSS m32 xmm k xmm
|
|
// VDIVSS xmm xmm k xmm
|
|
func VDIVSS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVDIVSS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VDIVSS_RD_SAE: Divide Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VDIVSS.RD_SAE xmm xmm k xmm
|
|
// VDIVSS.RD_SAE xmm xmm xmm
|
|
func VDIVSS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVDIVSS.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VDIVSS_RD_SAE_Z: Divide Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VDIVSS.RD_SAE.Z xmm xmm k xmm
|
|
func VDIVSS_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVDIVSS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VDIVSS_RN_SAE: Divide Scalar Single-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VDIVSS.RN_SAE xmm xmm k xmm
|
|
// VDIVSS.RN_SAE xmm xmm xmm
|
|
func VDIVSS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVDIVSS.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VDIVSS_RN_SAE_Z: Divide Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VDIVSS.RN_SAE.Z xmm xmm k xmm
|
|
func VDIVSS_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVDIVSS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VDIVSS_RU_SAE: Divide Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VDIVSS.RU_SAE xmm xmm k xmm
|
|
// VDIVSS.RU_SAE xmm xmm xmm
|
|
func VDIVSS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVDIVSS.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VDIVSS_RU_SAE_Z: Divide Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VDIVSS.RU_SAE.Z xmm xmm k xmm
|
|
func VDIVSS_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVDIVSS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VDIVSS_RZ_SAE: Divide Scalar Single-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VDIVSS.RZ_SAE xmm xmm k xmm
|
|
// VDIVSS.RZ_SAE xmm xmm xmm
|
|
func VDIVSS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVDIVSS.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VDIVSS_RZ_SAE_Z: Divide Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VDIVSS.RZ_SAE.Z xmm xmm k xmm
|
|
func VDIVSS_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVDIVSS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VDIVSS_Z: Divide Scalar Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VDIVSS.Z m32 xmm k xmm
|
|
// VDIVSS.Z xmm xmm k xmm
|
|
func VDIVSS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVDIVSS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VDPPD: Dot Product of Packed Double Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VDPPD imm8 m128 xmm xmm
|
|
// VDPPD imm8 xmm xmm xmm
|
|
func VDPPD(i, mx, x, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVDPPD.Forms(), sffxs{}, []operand.Op{i, mx, x, x1})
|
|
}
|
|
|
|
// VDPPS: Dot Product of Packed Single Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VDPPS imm8 m128 xmm xmm
|
|
// VDPPS imm8 m256 ymm ymm
|
|
// VDPPS imm8 xmm xmm xmm
|
|
// VDPPS imm8 ymm ymm ymm
|
|
func VDPPS(i, mxy, xy, xy1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVDPPS.Forms(), sffxs{}, []operand.Op{i, mxy, xy, xy1})
|
|
}
|
|
|
|
// VEXP2PD: Approximation to the Exponential 2^x of Packed Double-Precision Floating-Point Values with Less Than 2^-23 Relative Error.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VEXP2PD m512 k zmm
|
|
// VEXP2PD m512 zmm
|
|
// VEXP2PD zmm k zmm
|
|
// VEXP2PD zmm zmm
|
|
func VEXP2PD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVEXP2PD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VEXP2PD_BCST: Approximation to the Exponential 2^x of Packed Double-Precision Floating-Point Values with Less Than 2^-23 Relative Error (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VEXP2PD.BCST m64 k zmm
|
|
// VEXP2PD.BCST m64 zmm
|
|
func VEXP2PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVEXP2PD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VEXP2PD_BCST_Z: Approximation to the Exponential 2^x of Packed Double-Precision Floating-Point Values with Less Than 2^-23 Relative Error (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VEXP2PD.BCST.Z m64 k zmm
|
|
func VEXP2PD_BCST_Z(m, k, z operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVEXP2PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, z})
|
|
}
|
|
|
|
// VEXP2PD_SAE: Approximation to the Exponential 2^x of Packed Double-Precision Floating-Point Values with Less Than 2^-23 Relative Error (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VEXP2PD.SAE zmm k zmm
|
|
// VEXP2PD.SAE zmm zmm
|
|
func VEXP2PD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVEXP2PD.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VEXP2PD_SAE_Z: Approximation to the Exponential 2^x of Packed Double-Precision Floating-Point Values with Less Than 2^-23 Relative Error (Suppress All Exceptions, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VEXP2PD.SAE.Z zmm k zmm
|
|
func VEXP2PD_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVEXP2PD.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VEXP2PD_Z: Approximation to the Exponential 2^x of Packed Double-Precision Floating-Point Values with Less Than 2^-23 Relative Error (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VEXP2PD.Z m512 k zmm
|
|
// VEXP2PD.Z zmm k zmm
|
|
func VEXP2PD_Z(mz, k, z operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVEXP2PD.Forms(), sffxs{sffxZ}, []operand.Op{mz, k, z})
|
|
}
|
|
|
|
// VEXP2PS: Approximation to the Exponential 2^x of Packed Single-Precision Floating-Point Values with Less Than 2^-23 Relative Error.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VEXP2PS m512 k zmm
|
|
// VEXP2PS m512 zmm
|
|
// VEXP2PS zmm k zmm
|
|
// VEXP2PS zmm zmm
|
|
func VEXP2PS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVEXP2PS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VEXP2PS_BCST: Approximation to the Exponential 2^x of Packed Single-Precision Floating-Point Values with Less Than 2^-23 Relative Error (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VEXP2PS.BCST m32 k zmm
|
|
// VEXP2PS.BCST m32 zmm
|
|
func VEXP2PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVEXP2PS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VEXP2PS_BCST_Z: Approximation to the Exponential 2^x of Packed Single-Precision Floating-Point Values with Less Than 2^-23 Relative Error (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VEXP2PS.BCST.Z m32 k zmm
|
|
func VEXP2PS_BCST_Z(m, k, z operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVEXP2PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, z})
|
|
}
|
|
|
|
// VEXP2PS_SAE: Approximation to the Exponential 2^x of Packed Single-Precision Floating-Point Values with Less Than 2^-23 Relative Error (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VEXP2PS.SAE zmm k zmm
|
|
// VEXP2PS.SAE zmm zmm
|
|
func VEXP2PS_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVEXP2PS.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VEXP2PS_SAE_Z: Approximation to the Exponential 2^x of Packed Single-Precision Floating-Point Values with Less Than 2^-23 Relative Error (Suppress All Exceptions, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VEXP2PS.SAE.Z zmm k zmm
|
|
func VEXP2PS_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVEXP2PS.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VEXP2PS_Z: Approximation to the Exponential 2^x of Packed Single-Precision Floating-Point Values with Less Than 2^-23 Relative Error (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VEXP2PS.Z m512 k zmm
|
|
// VEXP2PS.Z zmm k zmm
|
|
func VEXP2PS_Z(mz, k, z operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVEXP2PS.Forms(), sffxs{sffxZ}, []operand.Op{mz, k, z})
|
|
}
|
|
|
|
// VEXPANDPD: Load Sparse Packed Double-Precision Floating-Point Values from Dense Memory.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VEXPANDPD m256 k ymm
|
|
// VEXPANDPD m256 ymm
|
|
// VEXPANDPD ymm k ymm
|
|
// VEXPANDPD ymm ymm
|
|
// VEXPANDPD m512 k zmm
|
|
// VEXPANDPD m512 zmm
|
|
// VEXPANDPD zmm k zmm
|
|
// VEXPANDPD zmm zmm
|
|
// VEXPANDPD m128 k xmm
|
|
// VEXPANDPD m128 xmm
|
|
// VEXPANDPD xmm k xmm
|
|
// VEXPANDPD xmm xmm
|
|
func VEXPANDPD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVEXPANDPD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VEXPANDPD_Z: Load Sparse Packed Double-Precision Floating-Point Values from Dense Memory (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VEXPANDPD.Z m256 k ymm
|
|
// VEXPANDPD.Z ymm k ymm
|
|
// VEXPANDPD.Z m512 k zmm
|
|
// VEXPANDPD.Z zmm k zmm
|
|
// VEXPANDPD.Z m128 k xmm
|
|
// VEXPANDPD.Z xmm k xmm
|
|
func VEXPANDPD_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVEXPANDPD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz})
|
|
}
|
|
|
|
// VEXPANDPS: Load Sparse Packed Single-Precision Floating-Point Values from Dense Memory.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VEXPANDPS m128 k xmm
|
|
// VEXPANDPS m128 xmm
|
|
// VEXPANDPS m256 k ymm
|
|
// VEXPANDPS m256 ymm
|
|
// VEXPANDPS xmm k xmm
|
|
// VEXPANDPS xmm xmm
|
|
// VEXPANDPS ymm k ymm
|
|
// VEXPANDPS ymm ymm
|
|
// VEXPANDPS m512 k zmm
|
|
// VEXPANDPS m512 zmm
|
|
// VEXPANDPS zmm k zmm
|
|
// VEXPANDPS zmm zmm
|
|
func VEXPANDPS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVEXPANDPS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VEXPANDPS_Z: Load Sparse Packed Single-Precision Floating-Point Values from Dense Memory (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VEXPANDPS.Z m128 k xmm
|
|
// VEXPANDPS.Z m256 k ymm
|
|
// VEXPANDPS.Z xmm k xmm
|
|
// VEXPANDPS.Z ymm k ymm
|
|
// VEXPANDPS.Z m512 k zmm
|
|
// VEXPANDPS.Z zmm k zmm
|
|
func VEXPANDPS_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVEXPANDPS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz})
|
|
}
|
|
|
|
// VEXTRACTF128: Extract Packed Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VEXTRACTF128 imm8 ymm m128
|
|
// VEXTRACTF128 imm8 ymm xmm
|
|
func VEXTRACTF128(i, y, mx operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVEXTRACTF128.Forms(), sffxs{}, []operand.Op{i, y, mx})
|
|
}
|
|
|
|
// VEXTRACTF32X4: Extract 128 Bits of Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VEXTRACTF32X4 imm8 ymm k m128
|
|
// VEXTRACTF32X4 imm8 ymm k xmm
|
|
// VEXTRACTF32X4 imm8 ymm m128
|
|
// VEXTRACTF32X4 imm8 ymm xmm
|
|
// VEXTRACTF32X4 imm8 zmm k m128
|
|
// VEXTRACTF32X4 imm8 zmm k xmm
|
|
// VEXTRACTF32X4 imm8 zmm m128
|
|
// VEXTRACTF32X4 imm8 zmm xmm
|
|
func VEXTRACTF32X4(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVEXTRACTF32X4.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VEXTRACTF32X4_Z: Extract 128 Bits of Packed Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VEXTRACTF32X4.Z imm8 ymm k m128
|
|
// VEXTRACTF32X4.Z imm8 ymm k xmm
|
|
// VEXTRACTF32X4.Z imm8 zmm k m128
|
|
// VEXTRACTF32X4.Z imm8 zmm k xmm
|
|
func VEXTRACTF32X4_Z(i, yz, k, mx operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVEXTRACTF32X4.Forms(), sffxs{sffxZ}, []operand.Op{i, yz, k, mx})
|
|
}
|
|
|
|
// VEXTRACTF32X8: Extract 256 Bits of Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VEXTRACTF32X8 imm8 zmm k m256
|
|
// VEXTRACTF32X8 imm8 zmm k ymm
|
|
// VEXTRACTF32X8 imm8 zmm m256
|
|
// VEXTRACTF32X8 imm8 zmm ymm
|
|
func VEXTRACTF32X8(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVEXTRACTF32X8.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VEXTRACTF32X8_Z: Extract 256 Bits of Packed Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VEXTRACTF32X8.Z imm8 zmm k m256
|
|
// VEXTRACTF32X8.Z imm8 zmm k ymm
|
|
func VEXTRACTF32X8_Z(i, z, k, my operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVEXTRACTF32X8.Forms(), sffxs{sffxZ}, []operand.Op{i, z, k, my})
|
|
}
|
|
|
|
// VEXTRACTF64X2: Extract 128 Bits of Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VEXTRACTF64X2 imm8 ymm k m128
|
|
// VEXTRACTF64X2 imm8 ymm k xmm
|
|
// VEXTRACTF64X2 imm8 ymm m128
|
|
// VEXTRACTF64X2 imm8 ymm xmm
|
|
// VEXTRACTF64X2 imm8 zmm k m128
|
|
// VEXTRACTF64X2 imm8 zmm k xmm
|
|
// VEXTRACTF64X2 imm8 zmm m128
|
|
// VEXTRACTF64X2 imm8 zmm xmm
|
|
func VEXTRACTF64X2(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVEXTRACTF64X2.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VEXTRACTF64X2_Z: Extract 128 Bits of Packed Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VEXTRACTF64X2.Z imm8 ymm k m128
|
|
// VEXTRACTF64X2.Z imm8 ymm k xmm
|
|
// VEXTRACTF64X2.Z imm8 zmm k m128
|
|
// VEXTRACTF64X2.Z imm8 zmm k xmm
|
|
func VEXTRACTF64X2_Z(i, yz, k, mx operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVEXTRACTF64X2.Forms(), sffxs{sffxZ}, []operand.Op{i, yz, k, mx})
|
|
}
|
|
|
|
// VEXTRACTF64X4: Extract 256 Bits of Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VEXTRACTF64X4 imm8 zmm k m256
|
|
// VEXTRACTF64X4 imm8 zmm k ymm
|
|
// VEXTRACTF64X4 imm8 zmm m256
|
|
// VEXTRACTF64X4 imm8 zmm ymm
|
|
func VEXTRACTF64X4(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVEXTRACTF64X4.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VEXTRACTF64X4_Z: Extract 256 Bits of Packed Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VEXTRACTF64X4.Z imm8 zmm k m256
|
|
// VEXTRACTF64X4.Z imm8 zmm k ymm
|
|
func VEXTRACTF64X4_Z(i, z, k, my operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVEXTRACTF64X4.Forms(), sffxs{sffxZ}, []operand.Op{i, z, k, my})
|
|
}
|
|
|
|
// VEXTRACTI128: Extract Packed Integer Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VEXTRACTI128 imm8 ymm m128
|
|
// VEXTRACTI128 imm8 ymm xmm
|
|
func VEXTRACTI128(i, y, mx operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVEXTRACTI128.Forms(), sffxs{}, []operand.Op{i, y, mx})
|
|
}
|
|
|
|
// VEXTRACTI32X4: Extract 128 Bits of Packed Doubleword Integer Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VEXTRACTI32X4 imm8 ymm k m128
|
|
// VEXTRACTI32X4 imm8 ymm k xmm
|
|
// VEXTRACTI32X4 imm8 ymm m128
|
|
// VEXTRACTI32X4 imm8 ymm xmm
|
|
// VEXTRACTI32X4 imm8 zmm k m128
|
|
// VEXTRACTI32X4 imm8 zmm k xmm
|
|
// VEXTRACTI32X4 imm8 zmm m128
|
|
// VEXTRACTI32X4 imm8 zmm xmm
|
|
func VEXTRACTI32X4(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVEXTRACTI32X4.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VEXTRACTI32X4_Z: Extract 128 Bits of Packed Doubleword Integer Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VEXTRACTI32X4.Z imm8 ymm k m128
|
|
// VEXTRACTI32X4.Z imm8 ymm k xmm
|
|
// VEXTRACTI32X4.Z imm8 zmm k m128
|
|
// VEXTRACTI32X4.Z imm8 zmm k xmm
|
|
func VEXTRACTI32X4_Z(i, yz, k, mx operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVEXTRACTI32X4.Forms(), sffxs{sffxZ}, []operand.Op{i, yz, k, mx})
|
|
}
|
|
|
|
// VEXTRACTI32X8: Extract 256 Bits of Packed Doubleword Integer Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VEXTRACTI32X8 imm8 zmm k m256
|
|
// VEXTRACTI32X8 imm8 zmm k ymm
|
|
// VEXTRACTI32X8 imm8 zmm m256
|
|
// VEXTRACTI32X8 imm8 zmm ymm
|
|
func VEXTRACTI32X8(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVEXTRACTI32X8.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VEXTRACTI32X8_Z: Extract 256 Bits of Packed Doubleword Integer Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VEXTRACTI32X8.Z imm8 zmm k m256
|
|
// VEXTRACTI32X8.Z imm8 zmm k ymm
|
|
func VEXTRACTI32X8_Z(i, z, k, my operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVEXTRACTI32X8.Forms(), sffxs{sffxZ}, []operand.Op{i, z, k, my})
|
|
}
|
|
|
|
// VEXTRACTI64X2: Extract 128 Bits of Packed Quadword Integer Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VEXTRACTI64X2 imm8 ymm k m128
|
|
// VEXTRACTI64X2 imm8 ymm k xmm
|
|
// VEXTRACTI64X2 imm8 ymm m128
|
|
// VEXTRACTI64X2 imm8 ymm xmm
|
|
// VEXTRACTI64X2 imm8 zmm k m128
|
|
// VEXTRACTI64X2 imm8 zmm k xmm
|
|
// VEXTRACTI64X2 imm8 zmm m128
|
|
// VEXTRACTI64X2 imm8 zmm xmm
|
|
func VEXTRACTI64X2(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVEXTRACTI64X2.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VEXTRACTI64X2_Z: Extract 128 Bits of Packed Quadword Integer Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VEXTRACTI64X2.Z imm8 ymm k m128
|
|
// VEXTRACTI64X2.Z imm8 ymm k xmm
|
|
// VEXTRACTI64X2.Z imm8 zmm k m128
|
|
// VEXTRACTI64X2.Z imm8 zmm k xmm
|
|
func VEXTRACTI64X2_Z(i, yz, k, mx operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVEXTRACTI64X2.Forms(), sffxs{sffxZ}, []operand.Op{i, yz, k, mx})
|
|
}
|
|
|
|
// VEXTRACTI64X4: Extract 256 Bits of Packed Quadword Integer Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VEXTRACTI64X4 imm8 zmm k m256
|
|
// VEXTRACTI64X4 imm8 zmm k ymm
|
|
// VEXTRACTI64X4 imm8 zmm m256
|
|
// VEXTRACTI64X4 imm8 zmm ymm
|
|
func VEXTRACTI64X4(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVEXTRACTI64X4.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VEXTRACTI64X4_Z: Extract 256 Bits of Packed Quadword Integer Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VEXTRACTI64X4.Z imm8 zmm k m256
|
|
// VEXTRACTI64X4.Z imm8 zmm k ymm
|
|
func VEXTRACTI64X4_Z(i, z, k, my operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVEXTRACTI64X4.Forms(), sffxs{sffxZ}, []operand.Op{i, z, k, my})
|
|
}
|
|
|
|
// VEXTRACTPS: Extract Packed Single Precision Floating-Point Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VEXTRACTPS imm8 xmm m32
|
|
// VEXTRACTPS imm8 xmm r32
|
|
func VEXTRACTPS(i, x, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVEXTRACTPS.Forms(), sffxs{}, []operand.Op{i, x, mr})
|
|
}
|
|
|
|
// VFIXUPIMMPD: Fix Up Special Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFIXUPIMMPD imm8 m128 xmm k xmm
|
|
// VFIXUPIMMPD imm8 m128 xmm xmm
|
|
// VFIXUPIMMPD imm8 m256 ymm k ymm
|
|
// VFIXUPIMMPD imm8 m256 ymm ymm
|
|
// VFIXUPIMMPD imm8 xmm xmm k xmm
|
|
// VFIXUPIMMPD imm8 xmm xmm xmm
|
|
// VFIXUPIMMPD imm8 ymm ymm k ymm
|
|
// VFIXUPIMMPD imm8 ymm ymm ymm
|
|
// VFIXUPIMMPD imm8 m512 zmm k zmm
|
|
// VFIXUPIMMPD imm8 m512 zmm zmm
|
|
// VFIXUPIMMPD imm8 zmm zmm k zmm
|
|
// VFIXUPIMMPD imm8 zmm zmm zmm
|
|
func VFIXUPIMMPD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFIXUPIMMPD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFIXUPIMMPD_BCST: Fix Up Special Packed Double-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFIXUPIMMPD.BCST imm8 m64 xmm k xmm
|
|
// VFIXUPIMMPD.BCST imm8 m64 xmm xmm
|
|
// VFIXUPIMMPD.BCST imm8 m64 ymm k ymm
|
|
// VFIXUPIMMPD.BCST imm8 m64 ymm ymm
|
|
// VFIXUPIMMPD.BCST imm8 m64 zmm k zmm
|
|
// VFIXUPIMMPD.BCST imm8 m64 zmm zmm
|
|
func VFIXUPIMMPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFIXUPIMMPD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VFIXUPIMMPD_BCST_Z: Fix Up Special Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFIXUPIMMPD.BCST.Z imm8 m64 xmm k xmm
|
|
// VFIXUPIMMPD.BCST.Z imm8 m64 ymm k ymm
|
|
// VFIXUPIMMPD.BCST.Z imm8 m64 zmm k zmm
|
|
func VFIXUPIMMPD_BCST_Z(i, m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFIXUPIMMPD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFIXUPIMMPD_SAE: Fix Up Special Packed Double-Precision Floating-Point Values (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFIXUPIMMPD.SAE imm8 zmm zmm k zmm
|
|
// VFIXUPIMMPD.SAE imm8 zmm zmm zmm
|
|
func VFIXUPIMMPD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFIXUPIMMPD.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VFIXUPIMMPD_SAE_Z: Fix Up Special Packed Double-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFIXUPIMMPD.SAE.Z imm8 zmm zmm k zmm
|
|
func VFIXUPIMMPD_SAE_Z(i, z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFIXUPIMMPD.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{i, z, z1, k, z2})
|
|
}
|
|
|
|
// VFIXUPIMMPD_Z: Fix Up Special Packed Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFIXUPIMMPD.Z imm8 m128 xmm k xmm
|
|
// VFIXUPIMMPD.Z imm8 m256 ymm k ymm
|
|
// VFIXUPIMMPD.Z imm8 xmm xmm k xmm
|
|
// VFIXUPIMMPD.Z imm8 ymm ymm k ymm
|
|
// VFIXUPIMMPD.Z imm8 m512 zmm k zmm
|
|
// VFIXUPIMMPD.Z imm8 zmm zmm k zmm
|
|
func VFIXUPIMMPD_Z(i, mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFIXUPIMMPD.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFIXUPIMMPS: Fix Up Special Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFIXUPIMMPS imm8 m256 ymm k ymm
|
|
// VFIXUPIMMPS imm8 m256 ymm ymm
|
|
// VFIXUPIMMPS imm8 ymm ymm k ymm
|
|
// VFIXUPIMMPS imm8 ymm ymm ymm
|
|
// VFIXUPIMMPS imm8 m512 zmm k zmm
|
|
// VFIXUPIMMPS imm8 m512 zmm zmm
|
|
// VFIXUPIMMPS imm8 zmm zmm k zmm
|
|
// VFIXUPIMMPS imm8 zmm zmm zmm
|
|
// VFIXUPIMMPS imm8 m128 xmm k xmm
|
|
// VFIXUPIMMPS imm8 m128 xmm xmm
|
|
// VFIXUPIMMPS imm8 xmm xmm k xmm
|
|
// VFIXUPIMMPS imm8 xmm xmm xmm
|
|
func VFIXUPIMMPS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFIXUPIMMPS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFIXUPIMMPS_BCST: Fix Up Special Packed Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFIXUPIMMPS.BCST imm8 m32 ymm k ymm
|
|
// VFIXUPIMMPS.BCST imm8 m32 ymm ymm
|
|
// VFIXUPIMMPS.BCST imm8 m32 zmm k zmm
|
|
// VFIXUPIMMPS.BCST imm8 m32 zmm zmm
|
|
// VFIXUPIMMPS.BCST imm8 m32 xmm k xmm
|
|
// VFIXUPIMMPS.BCST imm8 m32 xmm xmm
|
|
func VFIXUPIMMPS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFIXUPIMMPS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VFIXUPIMMPS_BCST_Z: Fix Up Special Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFIXUPIMMPS.BCST.Z imm8 m32 ymm k ymm
|
|
// VFIXUPIMMPS.BCST.Z imm8 m32 zmm k zmm
|
|
// VFIXUPIMMPS.BCST.Z imm8 m32 xmm k xmm
|
|
func VFIXUPIMMPS_BCST_Z(i, m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFIXUPIMMPS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFIXUPIMMPS_SAE: Fix Up Special Packed Single-Precision Floating-Point Values (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFIXUPIMMPS.SAE imm8 zmm zmm k zmm
|
|
// VFIXUPIMMPS.SAE imm8 zmm zmm zmm
|
|
func VFIXUPIMMPS_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFIXUPIMMPS.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VFIXUPIMMPS_SAE_Z: Fix Up Special Packed Single-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFIXUPIMMPS.SAE.Z imm8 zmm zmm k zmm
|
|
func VFIXUPIMMPS_SAE_Z(i, z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFIXUPIMMPS.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{i, z, z1, k, z2})
|
|
}
|
|
|
|
// VFIXUPIMMPS_Z: Fix Up Special Packed Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFIXUPIMMPS.Z imm8 m256 ymm k ymm
|
|
// VFIXUPIMMPS.Z imm8 ymm ymm k ymm
|
|
// VFIXUPIMMPS.Z imm8 m512 zmm k zmm
|
|
// VFIXUPIMMPS.Z imm8 zmm zmm k zmm
|
|
// VFIXUPIMMPS.Z imm8 m128 xmm k xmm
|
|
// VFIXUPIMMPS.Z imm8 xmm xmm k xmm
|
|
func VFIXUPIMMPS_Z(i, mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFIXUPIMMPS.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFIXUPIMMSD: Fix Up Special Scalar Double-Precision Floating-Point Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFIXUPIMMSD imm8 m64 xmm k xmm
|
|
// VFIXUPIMMSD imm8 m64 xmm xmm
|
|
// VFIXUPIMMSD imm8 xmm xmm k xmm
|
|
// VFIXUPIMMSD imm8 xmm xmm xmm
|
|
func VFIXUPIMMSD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFIXUPIMMSD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFIXUPIMMSD_SAE: Fix Up Special Scalar Double-Precision Floating-Point Value (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFIXUPIMMSD.SAE imm8 xmm xmm k xmm
|
|
// VFIXUPIMMSD.SAE imm8 xmm xmm xmm
|
|
func VFIXUPIMMSD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFIXUPIMMSD.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VFIXUPIMMSD_SAE_Z: Fix Up Special Scalar Double-Precision Floating-Point Value (Suppress All Exceptions, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFIXUPIMMSD.SAE.Z imm8 xmm xmm k xmm
|
|
func VFIXUPIMMSD_SAE_Z(i, x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFIXUPIMMSD.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{i, x, x1, k, x2})
|
|
}
|
|
|
|
// VFIXUPIMMSD_Z: Fix Up Special Scalar Double-Precision Floating-Point Value (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFIXUPIMMSD.Z imm8 m64 xmm k xmm
|
|
// VFIXUPIMMSD.Z imm8 xmm xmm k xmm
|
|
func VFIXUPIMMSD_Z(i, mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFIXUPIMMSD.Forms(), sffxs{sffxZ}, []operand.Op{i, mx, x, k, x1})
|
|
}
|
|
|
|
// VFIXUPIMMSS: Fix Up Special Scalar Single-Precision Floating-Point Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFIXUPIMMSS imm8 m32 xmm k xmm
|
|
// VFIXUPIMMSS imm8 m32 xmm xmm
|
|
// VFIXUPIMMSS imm8 xmm xmm k xmm
|
|
// VFIXUPIMMSS imm8 xmm xmm xmm
|
|
func VFIXUPIMMSS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFIXUPIMMSS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFIXUPIMMSS_SAE: Fix Up Special Scalar Single-Precision Floating-Point Value (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFIXUPIMMSS.SAE imm8 xmm xmm k xmm
|
|
// VFIXUPIMMSS.SAE imm8 xmm xmm xmm
|
|
func VFIXUPIMMSS_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFIXUPIMMSS.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VFIXUPIMMSS_SAE_Z: Fix Up Special Scalar Single-Precision Floating-Point Value (Suppress All Exceptions, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFIXUPIMMSS.SAE.Z imm8 xmm xmm k xmm
|
|
func VFIXUPIMMSS_SAE_Z(i, x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFIXUPIMMSS.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{i, x, x1, k, x2})
|
|
}
|
|
|
|
// VFIXUPIMMSS_Z: Fix Up Special Scalar Single-Precision Floating-Point Value (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFIXUPIMMSS.Z imm8 m32 xmm k xmm
|
|
// VFIXUPIMMSS.Z imm8 xmm xmm k xmm
|
|
func VFIXUPIMMSS_Z(i, mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFIXUPIMMSS.Forms(), sffxs{sffxZ}, []operand.Op{i, mx, x, k, x1})
|
|
}
|
|
|
|
// VFMADD132PD: Fused Multiply-Add of Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD132PD m128 xmm xmm
|
|
// VFMADD132PD m256 ymm ymm
|
|
// VFMADD132PD xmm xmm xmm
|
|
// VFMADD132PD ymm ymm ymm
|
|
// VFMADD132PD m128 xmm k xmm
|
|
// VFMADD132PD m256 ymm k ymm
|
|
// VFMADD132PD xmm xmm k xmm
|
|
// VFMADD132PD ymm ymm k ymm
|
|
// VFMADD132PD m512 zmm k zmm
|
|
// VFMADD132PD m512 zmm zmm
|
|
// VFMADD132PD zmm zmm k zmm
|
|
// VFMADD132PD zmm zmm zmm
|
|
func VFMADD132PD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD132PD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFMADD132PD_BCST: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD132PD.BCST m64 xmm k xmm
|
|
// VFMADD132PD.BCST m64 xmm xmm
|
|
// VFMADD132PD.BCST m64 ymm k ymm
|
|
// VFMADD132PD.BCST m64 ymm ymm
|
|
// VFMADD132PD.BCST m64 zmm k zmm
|
|
// VFMADD132PD.BCST m64 zmm zmm
|
|
func VFMADD132PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD132PD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VFMADD132PD_BCST_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD132PD.BCST.Z m64 xmm k xmm
|
|
// VFMADD132PD.BCST.Z m64 ymm k ymm
|
|
// VFMADD132PD.BCST.Z m64 zmm k zmm
|
|
func VFMADD132PD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD132PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFMADD132PD_RD_SAE: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD132PD.RD_SAE zmm zmm k zmm
|
|
// VFMADD132PD.RD_SAE zmm zmm zmm
|
|
func VFMADD132PD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD132PD.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFMADD132PD_RD_SAE_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD132PD.RD_SAE.Z zmm zmm k zmm
|
|
func VFMADD132PD_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD132PD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMADD132PD_RN_SAE: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD132PD.RN_SAE zmm zmm k zmm
|
|
// VFMADD132PD.RN_SAE zmm zmm zmm
|
|
func VFMADD132PD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD132PD.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFMADD132PD_RN_SAE_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD132PD.RN_SAE.Z zmm zmm k zmm
|
|
func VFMADD132PD_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD132PD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMADD132PD_RU_SAE: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD132PD.RU_SAE zmm zmm k zmm
|
|
// VFMADD132PD.RU_SAE zmm zmm zmm
|
|
func VFMADD132PD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD132PD.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFMADD132PD_RU_SAE_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD132PD.RU_SAE.Z zmm zmm k zmm
|
|
func VFMADD132PD_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD132PD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMADD132PD_RZ_SAE: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD132PD.RZ_SAE zmm zmm k zmm
|
|
// VFMADD132PD.RZ_SAE zmm zmm zmm
|
|
func VFMADD132PD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD132PD.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFMADD132PD_RZ_SAE_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD132PD.RZ_SAE.Z zmm zmm k zmm
|
|
func VFMADD132PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD132PD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMADD132PD_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD132PD.Z m128 xmm k xmm
|
|
// VFMADD132PD.Z m256 ymm k ymm
|
|
// VFMADD132PD.Z xmm xmm k xmm
|
|
// VFMADD132PD.Z ymm ymm k ymm
|
|
// VFMADD132PD.Z m512 zmm k zmm
|
|
// VFMADD132PD.Z zmm zmm k zmm
|
|
func VFMADD132PD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD132PD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFMADD132PS: Fused Multiply-Add of Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD132PS m128 xmm xmm
|
|
// VFMADD132PS m256 ymm ymm
|
|
// VFMADD132PS xmm xmm xmm
|
|
// VFMADD132PS ymm ymm ymm
|
|
// VFMADD132PS m128 xmm k xmm
|
|
// VFMADD132PS m256 ymm k ymm
|
|
// VFMADD132PS xmm xmm k xmm
|
|
// VFMADD132PS ymm ymm k ymm
|
|
// VFMADD132PS m512 zmm k zmm
|
|
// VFMADD132PS m512 zmm zmm
|
|
// VFMADD132PS zmm zmm k zmm
|
|
// VFMADD132PS zmm zmm zmm
|
|
func VFMADD132PS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD132PS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFMADD132PS_BCST: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD132PS.BCST m32 xmm k xmm
|
|
// VFMADD132PS.BCST m32 xmm xmm
|
|
// VFMADD132PS.BCST m32 ymm k ymm
|
|
// VFMADD132PS.BCST m32 ymm ymm
|
|
// VFMADD132PS.BCST m32 zmm k zmm
|
|
// VFMADD132PS.BCST m32 zmm zmm
|
|
func VFMADD132PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD132PS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VFMADD132PS_BCST_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD132PS.BCST.Z m32 xmm k xmm
|
|
// VFMADD132PS.BCST.Z m32 ymm k ymm
|
|
// VFMADD132PS.BCST.Z m32 zmm k zmm
|
|
func VFMADD132PS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD132PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFMADD132PS_RD_SAE: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD132PS.RD_SAE zmm zmm k zmm
|
|
// VFMADD132PS.RD_SAE zmm zmm zmm
|
|
func VFMADD132PS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD132PS.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFMADD132PS_RD_SAE_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD132PS.RD_SAE.Z zmm zmm k zmm
|
|
func VFMADD132PS_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD132PS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMADD132PS_RN_SAE: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD132PS.RN_SAE zmm zmm k zmm
|
|
// VFMADD132PS.RN_SAE zmm zmm zmm
|
|
func VFMADD132PS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD132PS.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFMADD132PS_RN_SAE_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD132PS.RN_SAE.Z zmm zmm k zmm
|
|
func VFMADD132PS_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD132PS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMADD132PS_RU_SAE: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD132PS.RU_SAE zmm zmm k zmm
|
|
// VFMADD132PS.RU_SAE zmm zmm zmm
|
|
func VFMADD132PS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD132PS.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFMADD132PS_RU_SAE_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD132PS.RU_SAE.Z zmm zmm k zmm
|
|
func VFMADD132PS_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD132PS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMADD132PS_RZ_SAE: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD132PS.RZ_SAE zmm zmm k zmm
|
|
// VFMADD132PS.RZ_SAE zmm zmm zmm
|
|
func VFMADD132PS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD132PS.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFMADD132PS_RZ_SAE_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD132PS.RZ_SAE.Z zmm zmm k zmm
|
|
func VFMADD132PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD132PS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMADD132PS_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD132PS.Z m128 xmm k xmm
|
|
// VFMADD132PS.Z m256 ymm k ymm
|
|
// VFMADD132PS.Z xmm xmm k xmm
|
|
// VFMADD132PS.Z ymm ymm k ymm
|
|
// VFMADD132PS.Z m512 zmm k zmm
|
|
// VFMADD132PS.Z zmm zmm k zmm
|
|
func VFMADD132PS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD132PS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFMADD132SD: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD132SD m64 xmm xmm
|
|
// VFMADD132SD xmm xmm xmm
|
|
// VFMADD132SD m64 xmm k xmm
|
|
// VFMADD132SD xmm xmm k xmm
|
|
func VFMADD132SD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD132SD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFMADD132SD_RD_SAE: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD132SD.RD_SAE xmm xmm k xmm
|
|
// VFMADD132SD.RD_SAE xmm xmm xmm
|
|
func VFMADD132SD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD132SD.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFMADD132SD_RD_SAE_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD132SD.RD_SAE.Z xmm xmm k xmm
|
|
func VFMADD132SD_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD132SD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFMADD132SD_RN_SAE: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD132SD.RN_SAE xmm xmm k xmm
|
|
// VFMADD132SD.RN_SAE xmm xmm xmm
|
|
func VFMADD132SD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD132SD.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFMADD132SD_RN_SAE_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD132SD.RN_SAE.Z xmm xmm k xmm
|
|
func VFMADD132SD_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD132SD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFMADD132SD_RU_SAE: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD132SD.RU_SAE xmm xmm k xmm
|
|
// VFMADD132SD.RU_SAE xmm xmm xmm
|
|
func VFMADD132SD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD132SD.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFMADD132SD_RU_SAE_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD132SD.RU_SAE.Z xmm xmm k xmm
|
|
func VFMADD132SD_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD132SD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFMADD132SD_RZ_SAE: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD132SD.RZ_SAE xmm xmm k xmm
|
|
// VFMADD132SD.RZ_SAE xmm xmm xmm
|
|
func VFMADD132SD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD132SD.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFMADD132SD_RZ_SAE_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD132SD.RZ_SAE.Z xmm xmm k xmm
|
|
func VFMADD132SD_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD132SD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFMADD132SD_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD132SD.Z m64 xmm k xmm
|
|
// VFMADD132SD.Z xmm xmm k xmm
|
|
func VFMADD132SD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD132SD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VFMADD132SS: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD132SS m32 xmm xmm
|
|
// VFMADD132SS xmm xmm xmm
|
|
// VFMADD132SS m32 xmm k xmm
|
|
// VFMADD132SS xmm xmm k xmm
|
|
func VFMADD132SS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD132SS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFMADD132SS_RD_SAE: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD132SS.RD_SAE xmm xmm k xmm
|
|
// VFMADD132SS.RD_SAE xmm xmm xmm
|
|
func VFMADD132SS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD132SS.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFMADD132SS_RD_SAE_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD132SS.RD_SAE.Z xmm xmm k xmm
|
|
func VFMADD132SS_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD132SS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFMADD132SS_RN_SAE: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD132SS.RN_SAE xmm xmm k xmm
|
|
// VFMADD132SS.RN_SAE xmm xmm xmm
|
|
func VFMADD132SS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD132SS.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFMADD132SS_RN_SAE_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD132SS.RN_SAE.Z xmm xmm k xmm
|
|
func VFMADD132SS_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD132SS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFMADD132SS_RU_SAE: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD132SS.RU_SAE xmm xmm k xmm
|
|
// VFMADD132SS.RU_SAE xmm xmm xmm
|
|
func VFMADD132SS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD132SS.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFMADD132SS_RU_SAE_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD132SS.RU_SAE.Z xmm xmm k xmm
|
|
func VFMADD132SS_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD132SS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFMADD132SS_RZ_SAE: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD132SS.RZ_SAE xmm xmm k xmm
|
|
// VFMADD132SS.RZ_SAE xmm xmm xmm
|
|
func VFMADD132SS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD132SS.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFMADD132SS_RZ_SAE_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD132SS.RZ_SAE.Z xmm xmm k xmm
|
|
func VFMADD132SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD132SS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFMADD132SS_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD132SS.Z m32 xmm k xmm
|
|
// VFMADD132SS.Z xmm xmm k xmm
|
|
func VFMADD132SS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD132SS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VFMADD213PD: Fused Multiply-Add of Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD213PD m128 xmm xmm
|
|
// VFMADD213PD m256 ymm ymm
|
|
// VFMADD213PD xmm xmm xmm
|
|
// VFMADD213PD ymm ymm ymm
|
|
// VFMADD213PD m128 xmm k xmm
|
|
// VFMADD213PD m256 ymm k ymm
|
|
// VFMADD213PD xmm xmm k xmm
|
|
// VFMADD213PD ymm ymm k ymm
|
|
// VFMADD213PD m512 zmm k zmm
|
|
// VFMADD213PD m512 zmm zmm
|
|
// VFMADD213PD zmm zmm k zmm
|
|
// VFMADD213PD zmm zmm zmm
|
|
func VFMADD213PD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD213PD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFMADD213PD_BCST: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD213PD.BCST m64 xmm k xmm
|
|
// VFMADD213PD.BCST m64 xmm xmm
|
|
// VFMADD213PD.BCST m64 ymm k ymm
|
|
// VFMADD213PD.BCST m64 ymm ymm
|
|
// VFMADD213PD.BCST m64 zmm k zmm
|
|
// VFMADD213PD.BCST m64 zmm zmm
|
|
func VFMADD213PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD213PD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VFMADD213PD_BCST_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD213PD.BCST.Z m64 xmm k xmm
|
|
// VFMADD213PD.BCST.Z m64 ymm k ymm
|
|
// VFMADD213PD.BCST.Z m64 zmm k zmm
|
|
func VFMADD213PD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD213PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFMADD213PD_RD_SAE: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD213PD.RD_SAE zmm zmm k zmm
|
|
// VFMADD213PD.RD_SAE zmm zmm zmm
|
|
func VFMADD213PD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD213PD.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFMADD213PD_RD_SAE_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD213PD.RD_SAE.Z zmm zmm k zmm
|
|
func VFMADD213PD_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD213PD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMADD213PD_RN_SAE: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD213PD.RN_SAE zmm zmm k zmm
|
|
// VFMADD213PD.RN_SAE zmm zmm zmm
|
|
func VFMADD213PD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD213PD.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFMADD213PD_RN_SAE_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD213PD.RN_SAE.Z zmm zmm k zmm
|
|
func VFMADD213PD_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD213PD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMADD213PD_RU_SAE: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD213PD.RU_SAE zmm zmm k zmm
|
|
// VFMADD213PD.RU_SAE zmm zmm zmm
|
|
func VFMADD213PD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD213PD.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFMADD213PD_RU_SAE_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD213PD.RU_SAE.Z zmm zmm k zmm
|
|
func VFMADD213PD_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD213PD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMADD213PD_RZ_SAE: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD213PD.RZ_SAE zmm zmm k zmm
|
|
// VFMADD213PD.RZ_SAE zmm zmm zmm
|
|
func VFMADD213PD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD213PD.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFMADD213PD_RZ_SAE_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD213PD.RZ_SAE.Z zmm zmm k zmm
|
|
func VFMADD213PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD213PD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMADD213PD_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD213PD.Z m128 xmm k xmm
|
|
// VFMADD213PD.Z m256 ymm k ymm
|
|
// VFMADD213PD.Z xmm xmm k xmm
|
|
// VFMADD213PD.Z ymm ymm k ymm
|
|
// VFMADD213PD.Z m512 zmm k zmm
|
|
// VFMADD213PD.Z zmm zmm k zmm
|
|
func VFMADD213PD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD213PD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFMADD213PS: Fused Multiply-Add of Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD213PS m128 xmm xmm
|
|
// VFMADD213PS m256 ymm ymm
|
|
// VFMADD213PS xmm xmm xmm
|
|
// VFMADD213PS ymm ymm ymm
|
|
// VFMADD213PS m128 xmm k xmm
|
|
// VFMADD213PS m256 ymm k ymm
|
|
// VFMADD213PS xmm xmm k xmm
|
|
// VFMADD213PS ymm ymm k ymm
|
|
// VFMADD213PS m512 zmm k zmm
|
|
// VFMADD213PS m512 zmm zmm
|
|
// VFMADD213PS zmm zmm k zmm
|
|
// VFMADD213PS zmm zmm zmm
|
|
func VFMADD213PS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD213PS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFMADD213PS_BCST: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD213PS.BCST m32 xmm k xmm
|
|
// VFMADD213PS.BCST m32 xmm xmm
|
|
// VFMADD213PS.BCST m32 ymm k ymm
|
|
// VFMADD213PS.BCST m32 ymm ymm
|
|
// VFMADD213PS.BCST m32 zmm k zmm
|
|
// VFMADD213PS.BCST m32 zmm zmm
|
|
func VFMADD213PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD213PS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VFMADD213PS_BCST_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD213PS.BCST.Z m32 xmm k xmm
|
|
// VFMADD213PS.BCST.Z m32 ymm k ymm
|
|
// VFMADD213PS.BCST.Z m32 zmm k zmm
|
|
func VFMADD213PS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD213PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFMADD213PS_RD_SAE: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD213PS.RD_SAE zmm zmm k zmm
|
|
// VFMADD213PS.RD_SAE zmm zmm zmm
|
|
func VFMADD213PS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD213PS.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFMADD213PS_RD_SAE_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD213PS.RD_SAE.Z zmm zmm k zmm
|
|
func VFMADD213PS_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD213PS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMADD213PS_RN_SAE: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD213PS.RN_SAE zmm zmm k zmm
|
|
// VFMADD213PS.RN_SAE zmm zmm zmm
|
|
func VFMADD213PS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD213PS.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFMADD213PS_RN_SAE_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD213PS.RN_SAE.Z zmm zmm k zmm
|
|
func VFMADD213PS_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD213PS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMADD213PS_RU_SAE: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD213PS.RU_SAE zmm zmm k zmm
|
|
// VFMADD213PS.RU_SAE zmm zmm zmm
|
|
func VFMADD213PS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD213PS.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFMADD213PS_RU_SAE_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD213PS.RU_SAE.Z zmm zmm k zmm
|
|
func VFMADD213PS_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD213PS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMADD213PS_RZ_SAE: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD213PS.RZ_SAE zmm zmm k zmm
|
|
// VFMADD213PS.RZ_SAE zmm zmm zmm
|
|
func VFMADD213PS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD213PS.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFMADD213PS_RZ_SAE_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD213PS.RZ_SAE.Z zmm zmm k zmm
|
|
func VFMADD213PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD213PS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMADD213PS_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD213PS.Z m128 xmm k xmm
|
|
// VFMADD213PS.Z m256 ymm k ymm
|
|
// VFMADD213PS.Z xmm xmm k xmm
|
|
// VFMADD213PS.Z ymm ymm k ymm
|
|
// VFMADD213PS.Z m512 zmm k zmm
|
|
// VFMADD213PS.Z zmm zmm k zmm
|
|
func VFMADD213PS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD213PS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFMADD213SD: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD213SD m64 xmm xmm
|
|
// VFMADD213SD xmm xmm xmm
|
|
// VFMADD213SD m64 xmm k xmm
|
|
// VFMADD213SD xmm xmm k xmm
|
|
func VFMADD213SD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD213SD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFMADD213SD_RD_SAE: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD213SD.RD_SAE xmm xmm k xmm
|
|
// VFMADD213SD.RD_SAE xmm xmm xmm
|
|
func VFMADD213SD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD213SD.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFMADD213SD_RD_SAE_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD213SD.RD_SAE.Z xmm xmm k xmm
|
|
func VFMADD213SD_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD213SD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFMADD213SD_RN_SAE: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD213SD.RN_SAE xmm xmm k xmm
|
|
// VFMADD213SD.RN_SAE xmm xmm xmm
|
|
func VFMADD213SD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD213SD.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFMADD213SD_RN_SAE_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD213SD.RN_SAE.Z xmm xmm k xmm
|
|
func VFMADD213SD_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD213SD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFMADD213SD_RU_SAE: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD213SD.RU_SAE xmm xmm k xmm
|
|
// VFMADD213SD.RU_SAE xmm xmm xmm
|
|
func VFMADD213SD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD213SD.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFMADD213SD_RU_SAE_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD213SD.RU_SAE.Z xmm xmm k xmm
|
|
func VFMADD213SD_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD213SD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFMADD213SD_RZ_SAE: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD213SD.RZ_SAE xmm xmm k xmm
|
|
// VFMADD213SD.RZ_SAE xmm xmm xmm
|
|
func VFMADD213SD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD213SD.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFMADD213SD_RZ_SAE_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD213SD.RZ_SAE.Z xmm xmm k xmm
|
|
func VFMADD213SD_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD213SD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFMADD213SD_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD213SD.Z m64 xmm k xmm
|
|
// VFMADD213SD.Z xmm xmm k xmm
|
|
func VFMADD213SD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD213SD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VFMADD213SS: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD213SS m32 xmm xmm
|
|
// VFMADD213SS xmm xmm xmm
|
|
// VFMADD213SS m32 xmm k xmm
|
|
// VFMADD213SS xmm xmm k xmm
|
|
func VFMADD213SS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD213SS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFMADD213SS_RD_SAE: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD213SS.RD_SAE xmm xmm k xmm
|
|
// VFMADD213SS.RD_SAE xmm xmm xmm
|
|
func VFMADD213SS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD213SS.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFMADD213SS_RD_SAE_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD213SS.RD_SAE.Z xmm xmm k xmm
|
|
func VFMADD213SS_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD213SS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFMADD213SS_RN_SAE: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD213SS.RN_SAE xmm xmm k xmm
|
|
// VFMADD213SS.RN_SAE xmm xmm xmm
|
|
func VFMADD213SS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD213SS.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFMADD213SS_RN_SAE_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD213SS.RN_SAE.Z xmm xmm k xmm
|
|
func VFMADD213SS_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD213SS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFMADD213SS_RU_SAE: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD213SS.RU_SAE xmm xmm k xmm
|
|
// VFMADD213SS.RU_SAE xmm xmm xmm
|
|
func VFMADD213SS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD213SS.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFMADD213SS_RU_SAE_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD213SS.RU_SAE.Z xmm xmm k xmm
|
|
func VFMADD213SS_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD213SS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFMADD213SS_RZ_SAE: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD213SS.RZ_SAE xmm xmm k xmm
|
|
// VFMADD213SS.RZ_SAE xmm xmm xmm
|
|
func VFMADD213SS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD213SS.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFMADD213SS_RZ_SAE_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD213SS.RZ_SAE.Z xmm xmm k xmm
|
|
func VFMADD213SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD213SS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFMADD213SS_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD213SS.Z m32 xmm k xmm
|
|
// VFMADD213SS.Z xmm xmm k xmm
|
|
func VFMADD213SS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD213SS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VFMADD231PD: Fused Multiply-Add of Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD231PD m128 xmm xmm
|
|
// VFMADD231PD m256 ymm ymm
|
|
// VFMADD231PD xmm xmm xmm
|
|
// VFMADD231PD ymm ymm ymm
|
|
// VFMADD231PD m128 xmm k xmm
|
|
// VFMADD231PD m256 ymm k ymm
|
|
// VFMADD231PD xmm xmm k xmm
|
|
// VFMADD231PD ymm ymm k ymm
|
|
// VFMADD231PD m512 zmm k zmm
|
|
// VFMADD231PD m512 zmm zmm
|
|
// VFMADD231PD zmm zmm k zmm
|
|
// VFMADD231PD zmm zmm zmm
|
|
func VFMADD231PD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD231PD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFMADD231PD_BCST: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD231PD.BCST m64 xmm k xmm
|
|
// VFMADD231PD.BCST m64 xmm xmm
|
|
// VFMADD231PD.BCST m64 ymm k ymm
|
|
// VFMADD231PD.BCST m64 ymm ymm
|
|
// VFMADD231PD.BCST m64 zmm k zmm
|
|
// VFMADD231PD.BCST m64 zmm zmm
|
|
func VFMADD231PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD231PD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VFMADD231PD_BCST_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD231PD.BCST.Z m64 xmm k xmm
|
|
// VFMADD231PD.BCST.Z m64 ymm k ymm
|
|
// VFMADD231PD.BCST.Z m64 zmm k zmm
|
|
func VFMADD231PD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD231PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFMADD231PD_RD_SAE: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD231PD.RD_SAE zmm zmm k zmm
|
|
// VFMADD231PD.RD_SAE zmm zmm zmm
|
|
func VFMADD231PD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD231PD.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFMADD231PD_RD_SAE_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD231PD.RD_SAE.Z zmm zmm k zmm
|
|
func VFMADD231PD_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD231PD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMADD231PD_RN_SAE: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD231PD.RN_SAE zmm zmm k zmm
|
|
// VFMADD231PD.RN_SAE zmm zmm zmm
|
|
func VFMADD231PD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD231PD.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFMADD231PD_RN_SAE_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD231PD.RN_SAE.Z zmm zmm k zmm
|
|
func VFMADD231PD_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD231PD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMADD231PD_RU_SAE: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD231PD.RU_SAE zmm zmm k zmm
|
|
// VFMADD231PD.RU_SAE zmm zmm zmm
|
|
func VFMADD231PD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD231PD.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFMADD231PD_RU_SAE_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD231PD.RU_SAE.Z zmm zmm k zmm
|
|
func VFMADD231PD_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD231PD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMADD231PD_RZ_SAE: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD231PD.RZ_SAE zmm zmm k zmm
|
|
// VFMADD231PD.RZ_SAE zmm zmm zmm
|
|
func VFMADD231PD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD231PD.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFMADD231PD_RZ_SAE_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD231PD.RZ_SAE.Z zmm zmm k zmm
|
|
func VFMADD231PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD231PD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMADD231PD_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD231PD.Z m128 xmm k xmm
|
|
// VFMADD231PD.Z m256 ymm k ymm
|
|
// VFMADD231PD.Z xmm xmm k xmm
|
|
// VFMADD231PD.Z ymm ymm k ymm
|
|
// VFMADD231PD.Z m512 zmm k zmm
|
|
// VFMADD231PD.Z zmm zmm k zmm
|
|
func VFMADD231PD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD231PD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFMADD231PS: Fused Multiply-Add of Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD231PS m128 xmm xmm
|
|
// VFMADD231PS m256 ymm ymm
|
|
// VFMADD231PS xmm xmm xmm
|
|
// VFMADD231PS ymm ymm ymm
|
|
// VFMADD231PS m128 xmm k xmm
|
|
// VFMADD231PS m256 ymm k ymm
|
|
// VFMADD231PS xmm xmm k xmm
|
|
// VFMADD231PS ymm ymm k ymm
|
|
// VFMADD231PS m512 zmm k zmm
|
|
// VFMADD231PS m512 zmm zmm
|
|
// VFMADD231PS zmm zmm k zmm
|
|
// VFMADD231PS zmm zmm zmm
|
|
func VFMADD231PS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD231PS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFMADD231PS_BCST: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD231PS.BCST m32 xmm k xmm
|
|
// VFMADD231PS.BCST m32 xmm xmm
|
|
// VFMADD231PS.BCST m32 ymm k ymm
|
|
// VFMADD231PS.BCST m32 ymm ymm
|
|
// VFMADD231PS.BCST m32 zmm k zmm
|
|
// VFMADD231PS.BCST m32 zmm zmm
|
|
func VFMADD231PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD231PS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VFMADD231PS_BCST_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD231PS.BCST.Z m32 xmm k xmm
|
|
// VFMADD231PS.BCST.Z m32 ymm k ymm
|
|
// VFMADD231PS.BCST.Z m32 zmm k zmm
|
|
func VFMADD231PS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD231PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFMADD231PS_RD_SAE: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD231PS.RD_SAE zmm zmm k zmm
|
|
// VFMADD231PS.RD_SAE zmm zmm zmm
|
|
func VFMADD231PS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD231PS.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFMADD231PS_RD_SAE_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD231PS.RD_SAE.Z zmm zmm k zmm
|
|
func VFMADD231PS_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD231PS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMADD231PS_RN_SAE: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD231PS.RN_SAE zmm zmm k zmm
|
|
// VFMADD231PS.RN_SAE zmm zmm zmm
|
|
func VFMADD231PS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD231PS.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFMADD231PS_RN_SAE_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD231PS.RN_SAE.Z zmm zmm k zmm
|
|
func VFMADD231PS_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD231PS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMADD231PS_RU_SAE: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD231PS.RU_SAE zmm zmm k zmm
|
|
// VFMADD231PS.RU_SAE zmm zmm zmm
|
|
func VFMADD231PS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD231PS.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFMADD231PS_RU_SAE_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD231PS.RU_SAE.Z zmm zmm k zmm
|
|
func VFMADD231PS_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD231PS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMADD231PS_RZ_SAE: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD231PS.RZ_SAE zmm zmm k zmm
|
|
// VFMADD231PS.RZ_SAE zmm zmm zmm
|
|
func VFMADD231PS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD231PS.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFMADD231PS_RZ_SAE_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD231PS.RZ_SAE.Z zmm zmm k zmm
|
|
func VFMADD231PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD231PS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMADD231PS_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD231PS.Z m128 xmm k xmm
|
|
// VFMADD231PS.Z m256 ymm k ymm
|
|
// VFMADD231PS.Z xmm xmm k xmm
|
|
// VFMADD231PS.Z ymm ymm k ymm
|
|
// VFMADD231PS.Z m512 zmm k zmm
|
|
// VFMADD231PS.Z zmm zmm k zmm
|
|
func VFMADD231PS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD231PS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFMADD231SD: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD231SD m64 xmm xmm
|
|
// VFMADD231SD xmm xmm xmm
|
|
// VFMADD231SD m64 xmm k xmm
|
|
// VFMADD231SD xmm xmm k xmm
|
|
func VFMADD231SD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD231SD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFMADD231SD_RD_SAE: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD231SD.RD_SAE xmm xmm k xmm
|
|
// VFMADD231SD.RD_SAE xmm xmm xmm
|
|
func VFMADD231SD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD231SD.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFMADD231SD_RD_SAE_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD231SD.RD_SAE.Z xmm xmm k xmm
|
|
func VFMADD231SD_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD231SD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFMADD231SD_RN_SAE: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD231SD.RN_SAE xmm xmm k xmm
|
|
// VFMADD231SD.RN_SAE xmm xmm xmm
|
|
func VFMADD231SD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD231SD.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFMADD231SD_RN_SAE_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD231SD.RN_SAE.Z xmm xmm k xmm
|
|
func VFMADD231SD_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD231SD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFMADD231SD_RU_SAE: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD231SD.RU_SAE xmm xmm k xmm
|
|
// VFMADD231SD.RU_SAE xmm xmm xmm
|
|
func VFMADD231SD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD231SD.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFMADD231SD_RU_SAE_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD231SD.RU_SAE.Z xmm xmm k xmm
|
|
func VFMADD231SD_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD231SD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFMADD231SD_RZ_SAE: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD231SD.RZ_SAE xmm xmm k xmm
|
|
// VFMADD231SD.RZ_SAE xmm xmm xmm
|
|
func VFMADD231SD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD231SD.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFMADD231SD_RZ_SAE_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD231SD.RZ_SAE.Z xmm xmm k xmm
|
|
func VFMADD231SD_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD231SD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFMADD231SD_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD231SD.Z m64 xmm k xmm
|
|
// VFMADD231SD.Z xmm xmm k xmm
|
|
func VFMADD231SD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD231SD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VFMADD231SS: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD231SS m32 xmm xmm
|
|
// VFMADD231SS xmm xmm xmm
|
|
// VFMADD231SS m32 xmm k xmm
|
|
// VFMADD231SS xmm xmm k xmm
|
|
func VFMADD231SS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD231SS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFMADD231SS_RD_SAE: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD231SS.RD_SAE xmm xmm k xmm
|
|
// VFMADD231SS.RD_SAE xmm xmm xmm
|
|
func VFMADD231SS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD231SS.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFMADD231SS_RD_SAE_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD231SS.RD_SAE.Z xmm xmm k xmm
|
|
func VFMADD231SS_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD231SS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFMADD231SS_RN_SAE: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD231SS.RN_SAE xmm xmm k xmm
|
|
// VFMADD231SS.RN_SAE xmm xmm xmm
|
|
func VFMADD231SS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD231SS.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFMADD231SS_RN_SAE_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD231SS.RN_SAE.Z xmm xmm k xmm
|
|
func VFMADD231SS_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD231SS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFMADD231SS_RU_SAE: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD231SS.RU_SAE xmm xmm k xmm
|
|
// VFMADD231SS.RU_SAE xmm xmm xmm
|
|
func VFMADD231SS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD231SS.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFMADD231SS_RU_SAE_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD231SS.RU_SAE.Z xmm xmm k xmm
|
|
func VFMADD231SS_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD231SS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFMADD231SS_RZ_SAE: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD231SS.RZ_SAE xmm xmm k xmm
|
|
// VFMADD231SS.RZ_SAE xmm xmm xmm
|
|
func VFMADD231SS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD231SS.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFMADD231SS_RZ_SAE_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD231SS.RZ_SAE.Z xmm xmm k xmm
|
|
func VFMADD231SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD231SS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFMADD231SS_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADD231SS.Z m32 xmm k xmm
|
|
// VFMADD231SS.Z xmm xmm k xmm
|
|
func VFMADD231SS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADD231SS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VFMADDSUB132PD: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB132PD m128 xmm xmm
|
|
// VFMADDSUB132PD m256 ymm ymm
|
|
// VFMADDSUB132PD xmm xmm xmm
|
|
// VFMADDSUB132PD ymm ymm ymm
|
|
// VFMADDSUB132PD m128 xmm k xmm
|
|
// VFMADDSUB132PD m256 ymm k ymm
|
|
// VFMADDSUB132PD xmm xmm k xmm
|
|
// VFMADDSUB132PD ymm ymm k ymm
|
|
// VFMADDSUB132PD m512 zmm k zmm
|
|
// VFMADDSUB132PD m512 zmm zmm
|
|
// VFMADDSUB132PD zmm zmm k zmm
|
|
// VFMADDSUB132PD zmm zmm zmm
|
|
func VFMADDSUB132PD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB132PD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFMADDSUB132PD_BCST: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB132PD.BCST m64 xmm k xmm
|
|
// VFMADDSUB132PD.BCST m64 xmm xmm
|
|
// VFMADDSUB132PD.BCST m64 ymm k ymm
|
|
// VFMADDSUB132PD.BCST m64 ymm ymm
|
|
// VFMADDSUB132PD.BCST m64 zmm k zmm
|
|
// VFMADDSUB132PD.BCST m64 zmm zmm
|
|
func VFMADDSUB132PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB132PD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VFMADDSUB132PD_BCST_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB132PD.BCST.Z m64 xmm k xmm
|
|
// VFMADDSUB132PD.BCST.Z m64 ymm k ymm
|
|
// VFMADDSUB132PD.BCST.Z m64 zmm k zmm
|
|
func VFMADDSUB132PD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB132PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFMADDSUB132PD_RD_SAE: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB132PD.RD_SAE zmm zmm k zmm
|
|
// VFMADDSUB132PD.RD_SAE zmm zmm zmm
|
|
func VFMADDSUB132PD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB132PD.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFMADDSUB132PD_RD_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB132PD.RD_SAE.Z zmm zmm k zmm
|
|
func VFMADDSUB132PD_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB132PD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMADDSUB132PD_RN_SAE: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB132PD.RN_SAE zmm zmm k zmm
|
|
// VFMADDSUB132PD.RN_SAE zmm zmm zmm
|
|
func VFMADDSUB132PD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB132PD.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFMADDSUB132PD_RN_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB132PD.RN_SAE.Z zmm zmm k zmm
|
|
func VFMADDSUB132PD_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB132PD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMADDSUB132PD_RU_SAE: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB132PD.RU_SAE zmm zmm k zmm
|
|
// VFMADDSUB132PD.RU_SAE zmm zmm zmm
|
|
func VFMADDSUB132PD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB132PD.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFMADDSUB132PD_RU_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB132PD.RU_SAE.Z zmm zmm k zmm
|
|
func VFMADDSUB132PD_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB132PD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMADDSUB132PD_RZ_SAE: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB132PD.RZ_SAE zmm zmm k zmm
|
|
// VFMADDSUB132PD.RZ_SAE zmm zmm zmm
|
|
func VFMADDSUB132PD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB132PD.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFMADDSUB132PD_RZ_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB132PD.RZ_SAE.Z zmm zmm k zmm
|
|
func VFMADDSUB132PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB132PD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMADDSUB132PD_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB132PD.Z m128 xmm k xmm
|
|
// VFMADDSUB132PD.Z m256 ymm k ymm
|
|
// VFMADDSUB132PD.Z xmm xmm k xmm
|
|
// VFMADDSUB132PD.Z ymm ymm k ymm
|
|
// VFMADDSUB132PD.Z m512 zmm k zmm
|
|
// VFMADDSUB132PD.Z zmm zmm k zmm
|
|
func VFMADDSUB132PD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB132PD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFMADDSUB132PS: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB132PS m128 xmm xmm
|
|
// VFMADDSUB132PS m256 ymm ymm
|
|
// VFMADDSUB132PS xmm xmm xmm
|
|
// VFMADDSUB132PS ymm ymm ymm
|
|
// VFMADDSUB132PS m128 xmm k xmm
|
|
// VFMADDSUB132PS m256 ymm k ymm
|
|
// VFMADDSUB132PS xmm xmm k xmm
|
|
// VFMADDSUB132PS ymm ymm k ymm
|
|
// VFMADDSUB132PS m512 zmm k zmm
|
|
// VFMADDSUB132PS m512 zmm zmm
|
|
// VFMADDSUB132PS zmm zmm k zmm
|
|
// VFMADDSUB132PS zmm zmm zmm
|
|
func VFMADDSUB132PS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB132PS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFMADDSUB132PS_BCST: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB132PS.BCST m32 xmm k xmm
|
|
// VFMADDSUB132PS.BCST m32 xmm xmm
|
|
// VFMADDSUB132PS.BCST m32 ymm k ymm
|
|
// VFMADDSUB132PS.BCST m32 ymm ymm
|
|
// VFMADDSUB132PS.BCST m32 zmm k zmm
|
|
// VFMADDSUB132PS.BCST m32 zmm zmm
|
|
func VFMADDSUB132PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB132PS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VFMADDSUB132PS_BCST_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB132PS.BCST.Z m32 xmm k xmm
|
|
// VFMADDSUB132PS.BCST.Z m32 ymm k ymm
|
|
// VFMADDSUB132PS.BCST.Z m32 zmm k zmm
|
|
func VFMADDSUB132PS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB132PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFMADDSUB132PS_RD_SAE: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB132PS.RD_SAE zmm zmm k zmm
|
|
// VFMADDSUB132PS.RD_SAE zmm zmm zmm
|
|
func VFMADDSUB132PS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB132PS.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFMADDSUB132PS_RD_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB132PS.RD_SAE.Z zmm zmm k zmm
|
|
func VFMADDSUB132PS_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB132PS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMADDSUB132PS_RN_SAE: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB132PS.RN_SAE zmm zmm k zmm
|
|
// VFMADDSUB132PS.RN_SAE zmm zmm zmm
|
|
func VFMADDSUB132PS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB132PS.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFMADDSUB132PS_RN_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB132PS.RN_SAE.Z zmm zmm k zmm
|
|
func VFMADDSUB132PS_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB132PS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMADDSUB132PS_RU_SAE: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB132PS.RU_SAE zmm zmm k zmm
|
|
// VFMADDSUB132PS.RU_SAE zmm zmm zmm
|
|
func VFMADDSUB132PS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB132PS.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFMADDSUB132PS_RU_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB132PS.RU_SAE.Z zmm zmm k zmm
|
|
func VFMADDSUB132PS_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB132PS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMADDSUB132PS_RZ_SAE: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB132PS.RZ_SAE zmm zmm k zmm
|
|
// VFMADDSUB132PS.RZ_SAE zmm zmm zmm
|
|
func VFMADDSUB132PS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB132PS.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFMADDSUB132PS_RZ_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB132PS.RZ_SAE.Z zmm zmm k zmm
|
|
func VFMADDSUB132PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB132PS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMADDSUB132PS_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB132PS.Z m128 xmm k xmm
|
|
// VFMADDSUB132PS.Z m256 ymm k ymm
|
|
// VFMADDSUB132PS.Z xmm xmm k xmm
|
|
// VFMADDSUB132PS.Z ymm ymm k ymm
|
|
// VFMADDSUB132PS.Z m512 zmm k zmm
|
|
// VFMADDSUB132PS.Z zmm zmm k zmm
|
|
func VFMADDSUB132PS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB132PS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFMADDSUB213PD: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB213PD m128 xmm xmm
|
|
// VFMADDSUB213PD m256 ymm ymm
|
|
// VFMADDSUB213PD xmm xmm xmm
|
|
// VFMADDSUB213PD ymm ymm ymm
|
|
// VFMADDSUB213PD m128 xmm k xmm
|
|
// VFMADDSUB213PD m256 ymm k ymm
|
|
// VFMADDSUB213PD xmm xmm k xmm
|
|
// VFMADDSUB213PD ymm ymm k ymm
|
|
// VFMADDSUB213PD m512 zmm k zmm
|
|
// VFMADDSUB213PD m512 zmm zmm
|
|
// VFMADDSUB213PD zmm zmm k zmm
|
|
// VFMADDSUB213PD zmm zmm zmm
|
|
func VFMADDSUB213PD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB213PD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFMADDSUB213PD_BCST: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB213PD.BCST m64 xmm k xmm
|
|
// VFMADDSUB213PD.BCST m64 xmm xmm
|
|
// VFMADDSUB213PD.BCST m64 ymm k ymm
|
|
// VFMADDSUB213PD.BCST m64 ymm ymm
|
|
// VFMADDSUB213PD.BCST m64 zmm k zmm
|
|
// VFMADDSUB213PD.BCST m64 zmm zmm
|
|
func VFMADDSUB213PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB213PD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VFMADDSUB213PD_BCST_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB213PD.BCST.Z m64 xmm k xmm
|
|
// VFMADDSUB213PD.BCST.Z m64 ymm k ymm
|
|
// VFMADDSUB213PD.BCST.Z m64 zmm k zmm
|
|
func VFMADDSUB213PD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB213PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFMADDSUB213PD_RD_SAE: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB213PD.RD_SAE zmm zmm k zmm
|
|
// VFMADDSUB213PD.RD_SAE zmm zmm zmm
|
|
func VFMADDSUB213PD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB213PD.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFMADDSUB213PD_RD_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB213PD.RD_SAE.Z zmm zmm k zmm
|
|
func VFMADDSUB213PD_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB213PD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMADDSUB213PD_RN_SAE: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB213PD.RN_SAE zmm zmm k zmm
|
|
// VFMADDSUB213PD.RN_SAE zmm zmm zmm
|
|
func VFMADDSUB213PD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB213PD.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFMADDSUB213PD_RN_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB213PD.RN_SAE.Z zmm zmm k zmm
|
|
func VFMADDSUB213PD_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB213PD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMADDSUB213PD_RU_SAE: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB213PD.RU_SAE zmm zmm k zmm
|
|
// VFMADDSUB213PD.RU_SAE zmm zmm zmm
|
|
func VFMADDSUB213PD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB213PD.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFMADDSUB213PD_RU_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB213PD.RU_SAE.Z zmm zmm k zmm
|
|
func VFMADDSUB213PD_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB213PD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMADDSUB213PD_RZ_SAE: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB213PD.RZ_SAE zmm zmm k zmm
|
|
// VFMADDSUB213PD.RZ_SAE zmm zmm zmm
|
|
func VFMADDSUB213PD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB213PD.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFMADDSUB213PD_RZ_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB213PD.RZ_SAE.Z zmm zmm k zmm
|
|
func VFMADDSUB213PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB213PD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMADDSUB213PD_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB213PD.Z m128 xmm k xmm
|
|
// VFMADDSUB213PD.Z m256 ymm k ymm
|
|
// VFMADDSUB213PD.Z xmm xmm k xmm
|
|
// VFMADDSUB213PD.Z ymm ymm k ymm
|
|
// VFMADDSUB213PD.Z m512 zmm k zmm
|
|
// VFMADDSUB213PD.Z zmm zmm k zmm
|
|
func VFMADDSUB213PD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB213PD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFMADDSUB213PS: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB213PS m128 xmm xmm
|
|
// VFMADDSUB213PS m256 ymm ymm
|
|
// VFMADDSUB213PS xmm xmm xmm
|
|
// VFMADDSUB213PS ymm ymm ymm
|
|
// VFMADDSUB213PS m128 xmm k xmm
|
|
// VFMADDSUB213PS m256 ymm k ymm
|
|
// VFMADDSUB213PS xmm xmm k xmm
|
|
// VFMADDSUB213PS ymm ymm k ymm
|
|
// VFMADDSUB213PS m512 zmm k zmm
|
|
// VFMADDSUB213PS m512 zmm zmm
|
|
// VFMADDSUB213PS zmm zmm k zmm
|
|
// VFMADDSUB213PS zmm zmm zmm
|
|
func VFMADDSUB213PS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB213PS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFMADDSUB213PS_BCST: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB213PS.BCST m32 xmm k xmm
|
|
// VFMADDSUB213PS.BCST m32 xmm xmm
|
|
// VFMADDSUB213PS.BCST m32 ymm k ymm
|
|
// VFMADDSUB213PS.BCST m32 ymm ymm
|
|
// VFMADDSUB213PS.BCST m32 zmm k zmm
|
|
// VFMADDSUB213PS.BCST m32 zmm zmm
|
|
func VFMADDSUB213PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB213PS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VFMADDSUB213PS_BCST_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB213PS.BCST.Z m32 xmm k xmm
|
|
// VFMADDSUB213PS.BCST.Z m32 ymm k ymm
|
|
// VFMADDSUB213PS.BCST.Z m32 zmm k zmm
|
|
func VFMADDSUB213PS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB213PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFMADDSUB213PS_RD_SAE: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB213PS.RD_SAE zmm zmm k zmm
|
|
// VFMADDSUB213PS.RD_SAE zmm zmm zmm
|
|
func VFMADDSUB213PS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB213PS.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFMADDSUB213PS_RD_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB213PS.RD_SAE.Z zmm zmm k zmm
|
|
func VFMADDSUB213PS_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB213PS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMADDSUB213PS_RN_SAE: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB213PS.RN_SAE zmm zmm k zmm
|
|
// VFMADDSUB213PS.RN_SAE zmm zmm zmm
|
|
func VFMADDSUB213PS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB213PS.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFMADDSUB213PS_RN_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB213PS.RN_SAE.Z zmm zmm k zmm
|
|
func VFMADDSUB213PS_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB213PS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMADDSUB213PS_RU_SAE: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB213PS.RU_SAE zmm zmm k zmm
|
|
// VFMADDSUB213PS.RU_SAE zmm zmm zmm
|
|
func VFMADDSUB213PS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB213PS.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFMADDSUB213PS_RU_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB213PS.RU_SAE.Z zmm zmm k zmm
|
|
func VFMADDSUB213PS_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB213PS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMADDSUB213PS_RZ_SAE: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB213PS.RZ_SAE zmm zmm k zmm
|
|
// VFMADDSUB213PS.RZ_SAE zmm zmm zmm
|
|
func VFMADDSUB213PS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB213PS.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFMADDSUB213PS_RZ_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB213PS.RZ_SAE.Z zmm zmm k zmm
|
|
func VFMADDSUB213PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB213PS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMADDSUB213PS_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB213PS.Z m128 xmm k xmm
|
|
// VFMADDSUB213PS.Z m256 ymm k ymm
|
|
// VFMADDSUB213PS.Z xmm xmm k xmm
|
|
// VFMADDSUB213PS.Z ymm ymm k ymm
|
|
// VFMADDSUB213PS.Z m512 zmm k zmm
|
|
// VFMADDSUB213PS.Z zmm zmm k zmm
|
|
func VFMADDSUB213PS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB213PS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFMADDSUB231PD: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB231PD m128 xmm xmm
|
|
// VFMADDSUB231PD m256 ymm ymm
|
|
// VFMADDSUB231PD xmm xmm xmm
|
|
// VFMADDSUB231PD ymm ymm ymm
|
|
// VFMADDSUB231PD m128 xmm k xmm
|
|
// VFMADDSUB231PD m256 ymm k ymm
|
|
// VFMADDSUB231PD xmm xmm k xmm
|
|
// VFMADDSUB231PD ymm ymm k ymm
|
|
// VFMADDSUB231PD m512 zmm k zmm
|
|
// VFMADDSUB231PD m512 zmm zmm
|
|
// VFMADDSUB231PD zmm zmm k zmm
|
|
// VFMADDSUB231PD zmm zmm zmm
|
|
func VFMADDSUB231PD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB231PD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFMADDSUB231PD_BCST: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB231PD.BCST m64 xmm k xmm
|
|
// VFMADDSUB231PD.BCST m64 xmm xmm
|
|
// VFMADDSUB231PD.BCST m64 ymm k ymm
|
|
// VFMADDSUB231PD.BCST m64 ymm ymm
|
|
// VFMADDSUB231PD.BCST m64 zmm k zmm
|
|
// VFMADDSUB231PD.BCST m64 zmm zmm
|
|
func VFMADDSUB231PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB231PD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VFMADDSUB231PD_BCST_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB231PD.BCST.Z m64 xmm k xmm
|
|
// VFMADDSUB231PD.BCST.Z m64 ymm k ymm
|
|
// VFMADDSUB231PD.BCST.Z m64 zmm k zmm
|
|
func VFMADDSUB231PD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB231PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFMADDSUB231PD_RD_SAE: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB231PD.RD_SAE zmm zmm k zmm
|
|
// VFMADDSUB231PD.RD_SAE zmm zmm zmm
|
|
func VFMADDSUB231PD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB231PD.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFMADDSUB231PD_RD_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB231PD.RD_SAE.Z zmm zmm k zmm
|
|
func VFMADDSUB231PD_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB231PD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMADDSUB231PD_RN_SAE: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB231PD.RN_SAE zmm zmm k zmm
|
|
// VFMADDSUB231PD.RN_SAE zmm zmm zmm
|
|
func VFMADDSUB231PD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB231PD.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFMADDSUB231PD_RN_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB231PD.RN_SAE.Z zmm zmm k zmm
|
|
func VFMADDSUB231PD_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB231PD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMADDSUB231PD_RU_SAE: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB231PD.RU_SAE zmm zmm k zmm
|
|
// VFMADDSUB231PD.RU_SAE zmm zmm zmm
|
|
func VFMADDSUB231PD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB231PD.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFMADDSUB231PD_RU_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB231PD.RU_SAE.Z zmm zmm k zmm
|
|
func VFMADDSUB231PD_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB231PD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMADDSUB231PD_RZ_SAE: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB231PD.RZ_SAE zmm zmm k zmm
|
|
// VFMADDSUB231PD.RZ_SAE zmm zmm zmm
|
|
func VFMADDSUB231PD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB231PD.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFMADDSUB231PD_RZ_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB231PD.RZ_SAE.Z zmm zmm k zmm
|
|
func VFMADDSUB231PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB231PD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMADDSUB231PD_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB231PD.Z m128 xmm k xmm
|
|
// VFMADDSUB231PD.Z m256 ymm k ymm
|
|
// VFMADDSUB231PD.Z xmm xmm k xmm
|
|
// VFMADDSUB231PD.Z ymm ymm k ymm
|
|
// VFMADDSUB231PD.Z m512 zmm k zmm
|
|
// VFMADDSUB231PD.Z zmm zmm k zmm
|
|
func VFMADDSUB231PD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB231PD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFMADDSUB231PS: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB231PS m128 xmm xmm
|
|
// VFMADDSUB231PS m256 ymm ymm
|
|
// VFMADDSUB231PS xmm xmm xmm
|
|
// VFMADDSUB231PS ymm ymm ymm
|
|
// VFMADDSUB231PS m128 xmm k xmm
|
|
// VFMADDSUB231PS m256 ymm k ymm
|
|
// VFMADDSUB231PS xmm xmm k xmm
|
|
// VFMADDSUB231PS ymm ymm k ymm
|
|
// VFMADDSUB231PS m512 zmm k zmm
|
|
// VFMADDSUB231PS m512 zmm zmm
|
|
// VFMADDSUB231PS zmm zmm k zmm
|
|
// VFMADDSUB231PS zmm zmm zmm
|
|
func VFMADDSUB231PS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB231PS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFMADDSUB231PS_BCST: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB231PS.BCST m32 xmm k xmm
|
|
// VFMADDSUB231PS.BCST m32 xmm xmm
|
|
// VFMADDSUB231PS.BCST m32 ymm k ymm
|
|
// VFMADDSUB231PS.BCST m32 ymm ymm
|
|
// VFMADDSUB231PS.BCST m32 zmm k zmm
|
|
// VFMADDSUB231PS.BCST m32 zmm zmm
|
|
func VFMADDSUB231PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB231PS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VFMADDSUB231PS_BCST_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB231PS.BCST.Z m32 xmm k xmm
|
|
// VFMADDSUB231PS.BCST.Z m32 ymm k ymm
|
|
// VFMADDSUB231PS.BCST.Z m32 zmm k zmm
|
|
func VFMADDSUB231PS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB231PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFMADDSUB231PS_RD_SAE: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB231PS.RD_SAE zmm zmm k zmm
|
|
// VFMADDSUB231PS.RD_SAE zmm zmm zmm
|
|
func VFMADDSUB231PS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB231PS.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFMADDSUB231PS_RD_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB231PS.RD_SAE.Z zmm zmm k zmm
|
|
func VFMADDSUB231PS_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB231PS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMADDSUB231PS_RN_SAE: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB231PS.RN_SAE zmm zmm k zmm
|
|
// VFMADDSUB231PS.RN_SAE zmm zmm zmm
|
|
func VFMADDSUB231PS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB231PS.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFMADDSUB231PS_RN_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB231PS.RN_SAE.Z zmm zmm k zmm
|
|
func VFMADDSUB231PS_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB231PS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMADDSUB231PS_RU_SAE: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB231PS.RU_SAE zmm zmm k zmm
|
|
// VFMADDSUB231PS.RU_SAE zmm zmm zmm
|
|
func VFMADDSUB231PS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB231PS.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFMADDSUB231PS_RU_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB231PS.RU_SAE.Z zmm zmm k zmm
|
|
func VFMADDSUB231PS_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB231PS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMADDSUB231PS_RZ_SAE: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB231PS.RZ_SAE zmm zmm k zmm
|
|
// VFMADDSUB231PS.RZ_SAE zmm zmm zmm
|
|
func VFMADDSUB231PS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB231PS.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFMADDSUB231PS_RZ_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB231PS.RZ_SAE.Z zmm zmm k zmm
|
|
func VFMADDSUB231PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB231PS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMADDSUB231PS_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMADDSUB231PS.Z m128 xmm k xmm
|
|
// VFMADDSUB231PS.Z m256 ymm k ymm
|
|
// VFMADDSUB231PS.Z xmm xmm k xmm
|
|
// VFMADDSUB231PS.Z ymm ymm k ymm
|
|
// VFMADDSUB231PS.Z m512 zmm k zmm
|
|
// VFMADDSUB231PS.Z zmm zmm k zmm
|
|
func VFMADDSUB231PS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMADDSUB231PS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFMSUB132PD: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB132PD m128 xmm xmm
|
|
// VFMSUB132PD m256 ymm ymm
|
|
// VFMSUB132PD xmm xmm xmm
|
|
// VFMSUB132PD ymm ymm ymm
|
|
// VFMSUB132PD m128 xmm k xmm
|
|
// VFMSUB132PD m256 ymm k ymm
|
|
// VFMSUB132PD xmm xmm k xmm
|
|
// VFMSUB132PD ymm ymm k ymm
|
|
// VFMSUB132PD m512 zmm k zmm
|
|
// VFMSUB132PD m512 zmm zmm
|
|
// VFMSUB132PD zmm zmm k zmm
|
|
// VFMSUB132PD zmm zmm zmm
|
|
func VFMSUB132PD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB132PD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFMSUB132PD_BCST: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB132PD.BCST m64 xmm k xmm
|
|
// VFMSUB132PD.BCST m64 xmm xmm
|
|
// VFMSUB132PD.BCST m64 ymm k ymm
|
|
// VFMSUB132PD.BCST m64 ymm ymm
|
|
// VFMSUB132PD.BCST m64 zmm k zmm
|
|
// VFMSUB132PD.BCST m64 zmm zmm
|
|
func VFMSUB132PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB132PD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VFMSUB132PD_BCST_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB132PD.BCST.Z m64 xmm k xmm
|
|
// VFMSUB132PD.BCST.Z m64 ymm k ymm
|
|
// VFMSUB132PD.BCST.Z m64 zmm k zmm
|
|
func VFMSUB132PD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB132PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFMSUB132PD_RD_SAE: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB132PD.RD_SAE zmm zmm k zmm
|
|
// VFMSUB132PD.RD_SAE zmm zmm zmm
|
|
func VFMSUB132PD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB132PD.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUB132PD_RD_SAE_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB132PD.RD_SAE.Z zmm zmm k zmm
|
|
func VFMSUB132PD_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB132PD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMSUB132PD_RN_SAE: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB132PD.RN_SAE zmm zmm k zmm
|
|
// VFMSUB132PD.RN_SAE zmm zmm zmm
|
|
func VFMSUB132PD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB132PD.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUB132PD_RN_SAE_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB132PD.RN_SAE.Z zmm zmm k zmm
|
|
func VFMSUB132PD_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB132PD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMSUB132PD_RU_SAE: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB132PD.RU_SAE zmm zmm k zmm
|
|
// VFMSUB132PD.RU_SAE zmm zmm zmm
|
|
func VFMSUB132PD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB132PD.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUB132PD_RU_SAE_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB132PD.RU_SAE.Z zmm zmm k zmm
|
|
func VFMSUB132PD_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB132PD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMSUB132PD_RZ_SAE: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB132PD.RZ_SAE zmm zmm k zmm
|
|
// VFMSUB132PD.RZ_SAE zmm zmm zmm
|
|
func VFMSUB132PD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB132PD.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUB132PD_RZ_SAE_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB132PD.RZ_SAE.Z zmm zmm k zmm
|
|
func VFMSUB132PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB132PD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMSUB132PD_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB132PD.Z m128 xmm k xmm
|
|
// VFMSUB132PD.Z m256 ymm k ymm
|
|
// VFMSUB132PD.Z xmm xmm k xmm
|
|
// VFMSUB132PD.Z ymm ymm k ymm
|
|
// VFMSUB132PD.Z m512 zmm k zmm
|
|
// VFMSUB132PD.Z zmm zmm k zmm
|
|
func VFMSUB132PD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB132PD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFMSUB132PS: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB132PS m128 xmm xmm
|
|
// VFMSUB132PS m256 ymm ymm
|
|
// VFMSUB132PS xmm xmm xmm
|
|
// VFMSUB132PS ymm ymm ymm
|
|
// VFMSUB132PS m128 xmm k xmm
|
|
// VFMSUB132PS m256 ymm k ymm
|
|
// VFMSUB132PS xmm xmm k xmm
|
|
// VFMSUB132PS ymm ymm k ymm
|
|
// VFMSUB132PS m512 zmm k zmm
|
|
// VFMSUB132PS m512 zmm zmm
|
|
// VFMSUB132PS zmm zmm k zmm
|
|
// VFMSUB132PS zmm zmm zmm
|
|
func VFMSUB132PS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB132PS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFMSUB132PS_BCST: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB132PS.BCST m32 xmm k xmm
|
|
// VFMSUB132PS.BCST m32 xmm xmm
|
|
// VFMSUB132PS.BCST m32 ymm k ymm
|
|
// VFMSUB132PS.BCST m32 ymm ymm
|
|
// VFMSUB132PS.BCST m32 zmm k zmm
|
|
// VFMSUB132PS.BCST m32 zmm zmm
|
|
func VFMSUB132PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB132PS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VFMSUB132PS_BCST_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB132PS.BCST.Z m32 xmm k xmm
|
|
// VFMSUB132PS.BCST.Z m32 ymm k ymm
|
|
// VFMSUB132PS.BCST.Z m32 zmm k zmm
|
|
func VFMSUB132PS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB132PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFMSUB132PS_RD_SAE: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB132PS.RD_SAE zmm zmm k zmm
|
|
// VFMSUB132PS.RD_SAE zmm zmm zmm
|
|
func VFMSUB132PS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB132PS.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUB132PS_RD_SAE_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB132PS.RD_SAE.Z zmm zmm k zmm
|
|
func VFMSUB132PS_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB132PS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMSUB132PS_RN_SAE: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB132PS.RN_SAE zmm zmm k zmm
|
|
// VFMSUB132PS.RN_SAE zmm zmm zmm
|
|
func VFMSUB132PS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB132PS.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUB132PS_RN_SAE_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB132PS.RN_SAE.Z zmm zmm k zmm
|
|
func VFMSUB132PS_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB132PS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMSUB132PS_RU_SAE: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB132PS.RU_SAE zmm zmm k zmm
|
|
// VFMSUB132PS.RU_SAE zmm zmm zmm
|
|
func VFMSUB132PS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB132PS.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUB132PS_RU_SAE_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB132PS.RU_SAE.Z zmm zmm k zmm
|
|
func VFMSUB132PS_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB132PS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMSUB132PS_RZ_SAE: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB132PS.RZ_SAE zmm zmm k zmm
|
|
// VFMSUB132PS.RZ_SAE zmm zmm zmm
|
|
func VFMSUB132PS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB132PS.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUB132PS_RZ_SAE_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB132PS.RZ_SAE.Z zmm zmm k zmm
|
|
func VFMSUB132PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB132PS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMSUB132PS_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB132PS.Z m128 xmm k xmm
|
|
// VFMSUB132PS.Z m256 ymm k ymm
|
|
// VFMSUB132PS.Z xmm xmm k xmm
|
|
// VFMSUB132PS.Z ymm ymm k ymm
|
|
// VFMSUB132PS.Z m512 zmm k zmm
|
|
// VFMSUB132PS.Z zmm zmm k zmm
|
|
func VFMSUB132PS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB132PS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFMSUB132SD: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB132SD m64 xmm xmm
|
|
// VFMSUB132SD xmm xmm xmm
|
|
// VFMSUB132SD m64 xmm k xmm
|
|
// VFMSUB132SD xmm xmm k xmm
|
|
func VFMSUB132SD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB132SD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFMSUB132SD_RD_SAE: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB132SD.RD_SAE xmm xmm k xmm
|
|
// VFMSUB132SD.RD_SAE xmm xmm xmm
|
|
func VFMSUB132SD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB132SD.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUB132SD_RD_SAE_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB132SD.RD_SAE.Z xmm xmm k xmm
|
|
func VFMSUB132SD_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB132SD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFMSUB132SD_RN_SAE: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB132SD.RN_SAE xmm xmm k xmm
|
|
// VFMSUB132SD.RN_SAE xmm xmm xmm
|
|
func VFMSUB132SD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB132SD.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUB132SD_RN_SAE_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB132SD.RN_SAE.Z xmm xmm k xmm
|
|
func VFMSUB132SD_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB132SD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFMSUB132SD_RU_SAE: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB132SD.RU_SAE xmm xmm k xmm
|
|
// VFMSUB132SD.RU_SAE xmm xmm xmm
|
|
func VFMSUB132SD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB132SD.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUB132SD_RU_SAE_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB132SD.RU_SAE.Z xmm xmm k xmm
|
|
func VFMSUB132SD_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB132SD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFMSUB132SD_RZ_SAE: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB132SD.RZ_SAE xmm xmm k xmm
|
|
// VFMSUB132SD.RZ_SAE xmm xmm xmm
|
|
func VFMSUB132SD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB132SD.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUB132SD_RZ_SAE_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB132SD.RZ_SAE.Z xmm xmm k xmm
|
|
func VFMSUB132SD_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB132SD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFMSUB132SD_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB132SD.Z m64 xmm k xmm
|
|
// VFMSUB132SD.Z xmm xmm k xmm
|
|
func VFMSUB132SD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB132SD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VFMSUB132SS: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB132SS m32 xmm xmm
|
|
// VFMSUB132SS xmm xmm xmm
|
|
// VFMSUB132SS m32 xmm k xmm
|
|
// VFMSUB132SS xmm xmm k xmm
|
|
func VFMSUB132SS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB132SS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFMSUB132SS_RD_SAE: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB132SS.RD_SAE xmm xmm k xmm
|
|
// VFMSUB132SS.RD_SAE xmm xmm xmm
|
|
func VFMSUB132SS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB132SS.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUB132SS_RD_SAE_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB132SS.RD_SAE.Z xmm xmm k xmm
|
|
func VFMSUB132SS_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB132SS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFMSUB132SS_RN_SAE: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB132SS.RN_SAE xmm xmm k xmm
|
|
// VFMSUB132SS.RN_SAE xmm xmm xmm
|
|
func VFMSUB132SS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB132SS.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUB132SS_RN_SAE_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB132SS.RN_SAE.Z xmm xmm k xmm
|
|
func VFMSUB132SS_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB132SS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFMSUB132SS_RU_SAE: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB132SS.RU_SAE xmm xmm k xmm
|
|
// VFMSUB132SS.RU_SAE xmm xmm xmm
|
|
func VFMSUB132SS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB132SS.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUB132SS_RU_SAE_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB132SS.RU_SAE.Z xmm xmm k xmm
|
|
func VFMSUB132SS_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB132SS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFMSUB132SS_RZ_SAE: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB132SS.RZ_SAE xmm xmm k xmm
|
|
// VFMSUB132SS.RZ_SAE xmm xmm xmm
|
|
func VFMSUB132SS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB132SS.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUB132SS_RZ_SAE_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB132SS.RZ_SAE.Z xmm xmm k xmm
|
|
func VFMSUB132SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB132SS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFMSUB132SS_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB132SS.Z m32 xmm k xmm
|
|
// VFMSUB132SS.Z xmm xmm k xmm
|
|
func VFMSUB132SS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB132SS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VFMSUB213PD: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB213PD m128 xmm xmm
|
|
// VFMSUB213PD m256 ymm ymm
|
|
// VFMSUB213PD xmm xmm xmm
|
|
// VFMSUB213PD ymm ymm ymm
|
|
// VFMSUB213PD m128 xmm k xmm
|
|
// VFMSUB213PD m256 ymm k ymm
|
|
// VFMSUB213PD xmm xmm k xmm
|
|
// VFMSUB213PD ymm ymm k ymm
|
|
// VFMSUB213PD m512 zmm k zmm
|
|
// VFMSUB213PD m512 zmm zmm
|
|
// VFMSUB213PD zmm zmm k zmm
|
|
// VFMSUB213PD zmm zmm zmm
|
|
func VFMSUB213PD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB213PD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFMSUB213PD_BCST: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB213PD.BCST m64 xmm k xmm
|
|
// VFMSUB213PD.BCST m64 xmm xmm
|
|
// VFMSUB213PD.BCST m64 ymm k ymm
|
|
// VFMSUB213PD.BCST m64 ymm ymm
|
|
// VFMSUB213PD.BCST m64 zmm k zmm
|
|
// VFMSUB213PD.BCST m64 zmm zmm
|
|
func VFMSUB213PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB213PD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VFMSUB213PD_BCST_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB213PD.BCST.Z m64 xmm k xmm
|
|
// VFMSUB213PD.BCST.Z m64 ymm k ymm
|
|
// VFMSUB213PD.BCST.Z m64 zmm k zmm
|
|
func VFMSUB213PD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB213PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFMSUB213PD_RD_SAE: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB213PD.RD_SAE zmm zmm k zmm
|
|
// VFMSUB213PD.RD_SAE zmm zmm zmm
|
|
func VFMSUB213PD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB213PD.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUB213PD_RD_SAE_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB213PD.RD_SAE.Z zmm zmm k zmm
|
|
func VFMSUB213PD_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB213PD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMSUB213PD_RN_SAE: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB213PD.RN_SAE zmm zmm k zmm
|
|
// VFMSUB213PD.RN_SAE zmm zmm zmm
|
|
func VFMSUB213PD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB213PD.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUB213PD_RN_SAE_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB213PD.RN_SAE.Z zmm zmm k zmm
|
|
func VFMSUB213PD_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB213PD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMSUB213PD_RU_SAE: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB213PD.RU_SAE zmm zmm k zmm
|
|
// VFMSUB213PD.RU_SAE zmm zmm zmm
|
|
func VFMSUB213PD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB213PD.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUB213PD_RU_SAE_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB213PD.RU_SAE.Z zmm zmm k zmm
|
|
func VFMSUB213PD_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB213PD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMSUB213PD_RZ_SAE: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB213PD.RZ_SAE zmm zmm k zmm
|
|
// VFMSUB213PD.RZ_SAE zmm zmm zmm
|
|
func VFMSUB213PD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB213PD.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUB213PD_RZ_SAE_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB213PD.RZ_SAE.Z zmm zmm k zmm
|
|
func VFMSUB213PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB213PD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMSUB213PD_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB213PD.Z m128 xmm k xmm
|
|
// VFMSUB213PD.Z m256 ymm k ymm
|
|
// VFMSUB213PD.Z xmm xmm k xmm
|
|
// VFMSUB213PD.Z ymm ymm k ymm
|
|
// VFMSUB213PD.Z m512 zmm k zmm
|
|
// VFMSUB213PD.Z zmm zmm k zmm
|
|
func VFMSUB213PD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB213PD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFMSUB213PS: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB213PS m128 xmm xmm
|
|
// VFMSUB213PS m256 ymm ymm
|
|
// VFMSUB213PS xmm xmm xmm
|
|
// VFMSUB213PS ymm ymm ymm
|
|
// VFMSUB213PS m128 xmm k xmm
|
|
// VFMSUB213PS m256 ymm k ymm
|
|
// VFMSUB213PS xmm xmm k xmm
|
|
// VFMSUB213PS ymm ymm k ymm
|
|
// VFMSUB213PS m512 zmm k zmm
|
|
// VFMSUB213PS m512 zmm zmm
|
|
// VFMSUB213PS zmm zmm k zmm
|
|
// VFMSUB213PS zmm zmm zmm
|
|
func VFMSUB213PS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB213PS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFMSUB213PS_BCST: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB213PS.BCST m32 xmm k xmm
|
|
// VFMSUB213PS.BCST m32 xmm xmm
|
|
// VFMSUB213PS.BCST m32 ymm k ymm
|
|
// VFMSUB213PS.BCST m32 ymm ymm
|
|
// VFMSUB213PS.BCST m32 zmm k zmm
|
|
// VFMSUB213PS.BCST m32 zmm zmm
|
|
func VFMSUB213PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB213PS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VFMSUB213PS_BCST_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB213PS.BCST.Z m32 xmm k xmm
|
|
// VFMSUB213PS.BCST.Z m32 ymm k ymm
|
|
// VFMSUB213PS.BCST.Z m32 zmm k zmm
|
|
func VFMSUB213PS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB213PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFMSUB213PS_RD_SAE: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB213PS.RD_SAE zmm zmm k zmm
|
|
// VFMSUB213PS.RD_SAE zmm zmm zmm
|
|
func VFMSUB213PS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB213PS.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUB213PS_RD_SAE_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB213PS.RD_SAE.Z zmm zmm k zmm
|
|
func VFMSUB213PS_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB213PS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMSUB213PS_RN_SAE: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB213PS.RN_SAE zmm zmm k zmm
|
|
// VFMSUB213PS.RN_SAE zmm zmm zmm
|
|
func VFMSUB213PS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB213PS.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUB213PS_RN_SAE_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB213PS.RN_SAE.Z zmm zmm k zmm
|
|
func VFMSUB213PS_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB213PS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMSUB213PS_RU_SAE: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB213PS.RU_SAE zmm zmm k zmm
|
|
// VFMSUB213PS.RU_SAE zmm zmm zmm
|
|
func VFMSUB213PS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB213PS.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUB213PS_RU_SAE_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB213PS.RU_SAE.Z zmm zmm k zmm
|
|
func VFMSUB213PS_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB213PS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMSUB213PS_RZ_SAE: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB213PS.RZ_SAE zmm zmm k zmm
|
|
// VFMSUB213PS.RZ_SAE zmm zmm zmm
|
|
func VFMSUB213PS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB213PS.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUB213PS_RZ_SAE_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB213PS.RZ_SAE.Z zmm zmm k zmm
|
|
func VFMSUB213PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB213PS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMSUB213PS_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB213PS.Z m128 xmm k xmm
|
|
// VFMSUB213PS.Z m256 ymm k ymm
|
|
// VFMSUB213PS.Z xmm xmm k xmm
|
|
// VFMSUB213PS.Z ymm ymm k ymm
|
|
// VFMSUB213PS.Z m512 zmm k zmm
|
|
// VFMSUB213PS.Z zmm zmm k zmm
|
|
func VFMSUB213PS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB213PS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFMSUB213SD: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB213SD m64 xmm xmm
|
|
// VFMSUB213SD xmm xmm xmm
|
|
// VFMSUB213SD m64 xmm k xmm
|
|
// VFMSUB213SD xmm xmm k xmm
|
|
func VFMSUB213SD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB213SD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFMSUB213SD_RD_SAE: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB213SD.RD_SAE xmm xmm k xmm
|
|
// VFMSUB213SD.RD_SAE xmm xmm xmm
|
|
func VFMSUB213SD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB213SD.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUB213SD_RD_SAE_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB213SD.RD_SAE.Z xmm xmm k xmm
|
|
func VFMSUB213SD_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB213SD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFMSUB213SD_RN_SAE: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB213SD.RN_SAE xmm xmm k xmm
|
|
// VFMSUB213SD.RN_SAE xmm xmm xmm
|
|
func VFMSUB213SD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB213SD.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUB213SD_RN_SAE_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB213SD.RN_SAE.Z xmm xmm k xmm
|
|
func VFMSUB213SD_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB213SD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFMSUB213SD_RU_SAE: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB213SD.RU_SAE xmm xmm k xmm
|
|
// VFMSUB213SD.RU_SAE xmm xmm xmm
|
|
func VFMSUB213SD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB213SD.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUB213SD_RU_SAE_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB213SD.RU_SAE.Z xmm xmm k xmm
|
|
func VFMSUB213SD_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB213SD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFMSUB213SD_RZ_SAE: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB213SD.RZ_SAE xmm xmm k xmm
|
|
// VFMSUB213SD.RZ_SAE xmm xmm xmm
|
|
func VFMSUB213SD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB213SD.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUB213SD_RZ_SAE_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB213SD.RZ_SAE.Z xmm xmm k xmm
|
|
func VFMSUB213SD_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB213SD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFMSUB213SD_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB213SD.Z m64 xmm k xmm
|
|
// VFMSUB213SD.Z xmm xmm k xmm
|
|
func VFMSUB213SD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB213SD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VFMSUB213SS: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB213SS m32 xmm xmm
|
|
// VFMSUB213SS xmm xmm xmm
|
|
// VFMSUB213SS m32 xmm k xmm
|
|
// VFMSUB213SS xmm xmm k xmm
|
|
func VFMSUB213SS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB213SS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFMSUB213SS_RD_SAE: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB213SS.RD_SAE xmm xmm k xmm
|
|
// VFMSUB213SS.RD_SAE xmm xmm xmm
|
|
func VFMSUB213SS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB213SS.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUB213SS_RD_SAE_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB213SS.RD_SAE.Z xmm xmm k xmm
|
|
func VFMSUB213SS_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB213SS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFMSUB213SS_RN_SAE: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB213SS.RN_SAE xmm xmm k xmm
|
|
// VFMSUB213SS.RN_SAE xmm xmm xmm
|
|
func VFMSUB213SS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB213SS.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUB213SS_RN_SAE_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB213SS.RN_SAE.Z xmm xmm k xmm
|
|
func VFMSUB213SS_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB213SS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFMSUB213SS_RU_SAE: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB213SS.RU_SAE xmm xmm k xmm
|
|
// VFMSUB213SS.RU_SAE xmm xmm xmm
|
|
func VFMSUB213SS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB213SS.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUB213SS_RU_SAE_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB213SS.RU_SAE.Z xmm xmm k xmm
|
|
func VFMSUB213SS_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB213SS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFMSUB213SS_RZ_SAE: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB213SS.RZ_SAE xmm xmm k xmm
|
|
// VFMSUB213SS.RZ_SAE xmm xmm xmm
|
|
func VFMSUB213SS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB213SS.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUB213SS_RZ_SAE_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB213SS.RZ_SAE.Z xmm xmm k xmm
|
|
func VFMSUB213SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB213SS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFMSUB213SS_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB213SS.Z m32 xmm k xmm
|
|
// VFMSUB213SS.Z xmm xmm k xmm
|
|
func VFMSUB213SS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB213SS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VFMSUB231PD: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB231PD m128 xmm xmm
|
|
// VFMSUB231PD m256 ymm ymm
|
|
// VFMSUB231PD xmm xmm xmm
|
|
// VFMSUB231PD ymm ymm ymm
|
|
// VFMSUB231PD m128 xmm k xmm
|
|
// VFMSUB231PD m256 ymm k ymm
|
|
// VFMSUB231PD xmm xmm k xmm
|
|
// VFMSUB231PD ymm ymm k ymm
|
|
// VFMSUB231PD m512 zmm k zmm
|
|
// VFMSUB231PD m512 zmm zmm
|
|
// VFMSUB231PD zmm zmm k zmm
|
|
// VFMSUB231PD zmm zmm zmm
|
|
func VFMSUB231PD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB231PD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFMSUB231PD_BCST: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB231PD.BCST m64 xmm k xmm
|
|
// VFMSUB231PD.BCST m64 xmm xmm
|
|
// VFMSUB231PD.BCST m64 ymm k ymm
|
|
// VFMSUB231PD.BCST m64 ymm ymm
|
|
// VFMSUB231PD.BCST m64 zmm k zmm
|
|
// VFMSUB231PD.BCST m64 zmm zmm
|
|
func VFMSUB231PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB231PD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VFMSUB231PD_BCST_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB231PD.BCST.Z m64 xmm k xmm
|
|
// VFMSUB231PD.BCST.Z m64 ymm k ymm
|
|
// VFMSUB231PD.BCST.Z m64 zmm k zmm
|
|
func VFMSUB231PD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB231PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFMSUB231PD_RD_SAE: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB231PD.RD_SAE zmm zmm k zmm
|
|
// VFMSUB231PD.RD_SAE zmm zmm zmm
|
|
func VFMSUB231PD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB231PD.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUB231PD_RD_SAE_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB231PD.RD_SAE.Z zmm zmm k zmm
|
|
func VFMSUB231PD_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB231PD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMSUB231PD_RN_SAE: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB231PD.RN_SAE zmm zmm k zmm
|
|
// VFMSUB231PD.RN_SAE zmm zmm zmm
|
|
func VFMSUB231PD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB231PD.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUB231PD_RN_SAE_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB231PD.RN_SAE.Z zmm zmm k zmm
|
|
func VFMSUB231PD_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB231PD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMSUB231PD_RU_SAE: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB231PD.RU_SAE zmm zmm k zmm
|
|
// VFMSUB231PD.RU_SAE zmm zmm zmm
|
|
func VFMSUB231PD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB231PD.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUB231PD_RU_SAE_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB231PD.RU_SAE.Z zmm zmm k zmm
|
|
func VFMSUB231PD_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB231PD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMSUB231PD_RZ_SAE: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB231PD.RZ_SAE zmm zmm k zmm
|
|
// VFMSUB231PD.RZ_SAE zmm zmm zmm
|
|
func VFMSUB231PD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB231PD.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUB231PD_RZ_SAE_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB231PD.RZ_SAE.Z zmm zmm k zmm
|
|
func VFMSUB231PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB231PD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMSUB231PD_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB231PD.Z m128 xmm k xmm
|
|
// VFMSUB231PD.Z m256 ymm k ymm
|
|
// VFMSUB231PD.Z xmm xmm k xmm
|
|
// VFMSUB231PD.Z ymm ymm k ymm
|
|
// VFMSUB231PD.Z m512 zmm k zmm
|
|
// VFMSUB231PD.Z zmm zmm k zmm
|
|
func VFMSUB231PD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB231PD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFMSUB231PS: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB231PS m128 xmm xmm
|
|
// VFMSUB231PS m256 ymm ymm
|
|
// VFMSUB231PS xmm xmm xmm
|
|
// VFMSUB231PS ymm ymm ymm
|
|
// VFMSUB231PS m128 xmm k xmm
|
|
// VFMSUB231PS m256 ymm k ymm
|
|
// VFMSUB231PS xmm xmm k xmm
|
|
// VFMSUB231PS ymm ymm k ymm
|
|
// VFMSUB231PS m512 zmm k zmm
|
|
// VFMSUB231PS m512 zmm zmm
|
|
// VFMSUB231PS zmm zmm k zmm
|
|
// VFMSUB231PS zmm zmm zmm
|
|
func VFMSUB231PS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB231PS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFMSUB231PS_BCST: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB231PS.BCST m32 xmm k xmm
|
|
// VFMSUB231PS.BCST m32 xmm xmm
|
|
// VFMSUB231PS.BCST m32 ymm k ymm
|
|
// VFMSUB231PS.BCST m32 ymm ymm
|
|
// VFMSUB231PS.BCST m32 zmm k zmm
|
|
// VFMSUB231PS.BCST m32 zmm zmm
|
|
func VFMSUB231PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB231PS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VFMSUB231PS_BCST_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB231PS.BCST.Z m32 xmm k xmm
|
|
// VFMSUB231PS.BCST.Z m32 ymm k ymm
|
|
// VFMSUB231PS.BCST.Z m32 zmm k zmm
|
|
func VFMSUB231PS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB231PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFMSUB231PS_RD_SAE: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB231PS.RD_SAE zmm zmm k zmm
|
|
// VFMSUB231PS.RD_SAE zmm zmm zmm
|
|
func VFMSUB231PS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB231PS.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUB231PS_RD_SAE_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB231PS.RD_SAE.Z zmm zmm k zmm
|
|
func VFMSUB231PS_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB231PS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMSUB231PS_RN_SAE: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB231PS.RN_SAE zmm zmm k zmm
|
|
// VFMSUB231PS.RN_SAE zmm zmm zmm
|
|
func VFMSUB231PS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB231PS.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUB231PS_RN_SAE_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB231PS.RN_SAE.Z zmm zmm k zmm
|
|
func VFMSUB231PS_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB231PS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMSUB231PS_RU_SAE: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB231PS.RU_SAE zmm zmm k zmm
|
|
// VFMSUB231PS.RU_SAE zmm zmm zmm
|
|
func VFMSUB231PS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB231PS.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUB231PS_RU_SAE_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB231PS.RU_SAE.Z zmm zmm k zmm
|
|
func VFMSUB231PS_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB231PS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMSUB231PS_RZ_SAE: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB231PS.RZ_SAE zmm zmm k zmm
|
|
// VFMSUB231PS.RZ_SAE zmm zmm zmm
|
|
func VFMSUB231PS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB231PS.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUB231PS_RZ_SAE_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB231PS.RZ_SAE.Z zmm zmm k zmm
|
|
func VFMSUB231PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB231PS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMSUB231PS_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB231PS.Z m128 xmm k xmm
|
|
// VFMSUB231PS.Z m256 ymm k ymm
|
|
// VFMSUB231PS.Z xmm xmm k xmm
|
|
// VFMSUB231PS.Z ymm ymm k ymm
|
|
// VFMSUB231PS.Z m512 zmm k zmm
|
|
// VFMSUB231PS.Z zmm zmm k zmm
|
|
func VFMSUB231PS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB231PS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFMSUB231SD: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB231SD m64 xmm xmm
|
|
// VFMSUB231SD xmm xmm xmm
|
|
// VFMSUB231SD m64 xmm k xmm
|
|
// VFMSUB231SD xmm xmm k xmm
|
|
func VFMSUB231SD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB231SD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFMSUB231SD_RD_SAE: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB231SD.RD_SAE xmm xmm k xmm
|
|
// VFMSUB231SD.RD_SAE xmm xmm xmm
|
|
func VFMSUB231SD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB231SD.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUB231SD_RD_SAE_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB231SD.RD_SAE.Z xmm xmm k xmm
|
|
func VFMSUB231SD_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB231SD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFMSUB231SD_RN_SAE: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB231SD.RN_SAE xmm xmm k xmm
|
|
// VFMSUB231SD.RN_SAE xmm xmm xmm
|
|
func VFMSUB231SD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB231SD.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUB231SD_RN_SAE_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB231SD.RN_SAE.Z xmm xmm k xmm
|
|
func VFMSUB231SD_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB231SD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFMSUB231SD_RU_SAE: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB231SD.RU_SAE xmm xmm k xmm
|
|
// VFMSUB231SD.RU_SAE xmm xmm xmm
|
|
func VFMSUB231SD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB231SD.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUB231SD_RU_SAE_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB231SD.RU_SAE.Z xmm xmm k xmm
|
|
func VFMSUB231SD_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB231SD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFMSUB231SD_RZ_SAE: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB231SD.RZ_SAE xmm xmm k xmm
|
|
// VFMSUB231SD.RZ_SAE xmm xmm xmm
|
|
func VFMSUB231SD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB231SD.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUB231SD_RZ_SAE_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB231SD.RZ_SAE.Z xmm xmm k xmm
|
|
func VFMSUB231SD_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB231SD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFMSUB231SD_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB231SD.Z m64 xmm k xmm
|
|
// VFMSUB231SD.Z xmm xmm k xmm
|
|
func VFMSUB231SD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB231SD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VFMSUB231SS: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB231SS m32 xmm xmm
|
|
// VFMSUB231SS xmm xmm xmm
|
|
// VFMSUB231SS m32 xmm k xmm
|
|
// VFMSUB231SS xmm xmm k xmm
|
|
func VFMSUB231SS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB231SS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFMSUB231SS_RD_SAE: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB231SS.RD_SAE xmm xmm k xmm
|
|
// VFMSUB231SS.RD_SAE xmm xmm xmm
|
|
func VFMSUB231SS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB231SS.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUB231SS_RD_SAE_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB231SS.RD_SAE.Z xmm xmm k xmm
|
|
func VFMSUB231SS_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB231SS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFMSUB231SS_RN_SAE: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB231SS.RN_SAE xmm xmm k xmm
|
|
// VFMSUB231SS.RN_SAE xmm xmm xmm
|
|
func VFMSUB231SS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB231SS.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUB231SS_RN_SAE_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB231SS.RN_SAE.Z xmm xmm k xmm
|
|
func VFMSUB231SS_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB231SS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFMSUB231SS_RU_SAE: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB231SS.RU_SAE xmm xmm k xmm
|
|
// VFMSUB231SS.RU_SAE xmm xmm xmm
|
|
func VFMSUB231SS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB231SS.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUB231SS_RU_SAE_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB231SS.RU_SAE.Z xmm xmm k xmm
|
|
func VFMSUB231SS_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB231SS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFMSUB231SS_RZ_SAE: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB231SS.RZ_SAE xmm xmm k xmm
|
|
// VFMSUB231SS.RZ_SAE xmm xmm xmm
|
|
func VFMSUB231SS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB231SS.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUB231SS_RZ_SAE_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB231SS.RZ_SAE.Z xmm xmm k xmm
|
|
func VFMSUB231SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB231SS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFMSUB231SS_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUB231SS.Z m32 xmm k xmm
|
|
// VFMSUB231SS.Z xmm xmm k xmm
|
|
func VFMSUB231SS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUB231SS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VFMSUBADD132PD: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD132PD m128 xmm xmm
|
|
// VFMSUBADD132PD m256 ymm ymm
|
|
// VFMSUBADD132PD xmm xmm xmm
|
|
// VFMSUBADD132PD ymm ymm ymm
|
|
// VFMSUBADD132PD m128 xmm k xmm
|
|
// VFMSUBADD132PD m256 ymm k ymm
|
|
// VFMSUBADD132PD xmm xmm k xmm
|
|
// VFMSUBADD132PD ymm ymm k ymm
|
|
// VFMSUBADD132PD m512 zmm k zmm
|
|
// VFMSUBADD132PD m512 zmm zmm
|
|
// VFMSUBADD132PD zmm zmm k zmm
|
|
// VFMSUBADD132PD zmm zmm zmm
|
|
func VFMSUBADD132PD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD132PD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFMSUBADD132PD_BCST: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD132PD.BCST m64 xmm k xmm
|
|
// VFMSUBADD132PD.BCST m64 xmm xmm
|
|
// VFMSUBADD132PD.BCST m64 ymm k ymm
|
|
// VFMSUBADD132PD.BCST m64 ymm ymm
|
|
// VFMSUBADD132PD.BCST m64 zmm k zmm
|
|
// VFMSUBADD132PD.BCST m64 zmm zmm
|
|
func VFMSUBADD132PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD132PD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VFMSUBADD132PD_BCST_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD132PD.BCST.Z m64 xmm k xmm
|
|
// VFMSUBADD132PD.BCST.Z m64 ymm k ymm
|
|
// VFMSUBADD132PD.BCST.Z m64 zmm k zmm
|
|
func VFMSUBADD132PD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD132PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFMSUBADD132PD_RD_SAE: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD132PD.RD_SAE zmm zmm k zmm
|
|
// VFMSUBADD132PD.RD_SAE zmm zmm zmm
|
|
func VFMSUBADD132PD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD132PD.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUBADD132PD_RD_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD132PD.RD_SAE.Z zmm zmm k zmm
|
|
func VFMSUBADD132PD_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD132PD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMSUBADD132PD_RN_SAE: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD132PD.RN_SAE zmm zmm k zmm
|
|
// VFMSUBADD132PD.RN_SAE zmm zmm zmm
|
|
func VFMSUBADD132PD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD132PD.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUBADD132PD_RN_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD132PD.RN_SAE.Z zmm zmm k zmm
|
|
func VFMSUBADD132PD_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD132PD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMSUBADD132PD_RU_SAE: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD132PD.RU_SAE zmm zmm k zmm
|
|
// VFMSUBADD132PD.RU_SAE zmm zmm zmm
|
|
func VFMSUBADD132PD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD132PD.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUBADD132PD_RU_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD132PD.RU_SAE.Z zmm zmm k zmm
|
|
func VFMSUBADD132PD_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD132PD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMSUBADD132PD_RZ_SAE: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD132PD.RZ_SAE zmm zmm k zmm
|
|
// VFMSUBADD132PD.RZ_SAE zmm zmm zmm
|
|
func VFMSUBADD132PD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD132PD.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUBADD132PD_RZ_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD132PD.RZ_SAE.Z zmm zmm k zmm
|
|
func VFMSUBADD132PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD132PD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMSUBADD132PD_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD132PD.Z m128 xmm k xmm
|
|
// VFMSUBADD132PD.Z m256 ymm k ymm
|
|
// VFMSUBADD132PD.Z xmm xmm k xmm
|
|
// VFMSUBADD132PD.Z ymm ymm k ymm
|
|
// VFMSUBADD132PD.Z m512 zmm k zmm
|
|
// VFMSUBADD132PD.Z zmm zmm k zmm
|
|
func VFMSUBADD132PD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD132PD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFMSUBADD132PS: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD132PS m128 xmm xmm
|
|
// VFMSUBADD132PS m256 ymm ymm
|
|
// VFMSUBADD132PS xmm xmm xmm
|
|
// VFMSUBADD132PS ymm ymm ymm
|
|
// VFMSUBADD132PS m128 xmm k xmm
|
|
// VFMSUBADD132PS m256 ymm k ymm
|
|
// VFMSUBADD132PS xmm xmm k xmm
|
|
// VFMSUBADD132PS ymm ymm k ymm
|
|
// VFMSUBADD132PS m512 zmm k zmm
|
|
// VFMSUBADD132PS m512 zmm zmm
|
|
// VFMSUBADD132PS zmm zmm k zmm
|
|
// VFMSUBADD132PS zmm zmm zmm
|
|
func VFMSUBADD132PS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD132PS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFMSUBADD132PS_BCST: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD132PS.BCST m32 xmm k xmm
|
|
// VFMSUBADD132PS.BCST m32 xmm xmm
|
|
// VFMSUBADD132PS.BCST m32 ymm k ymm
|
|
// VFMSUBADD132PS.BCST m32 ymm ymm
|
|
// VFMSUBADD132PS.BCST m32 zmm k zmm
|
|
// VFMSUBADD132PS.BCST m32 zmm zmm
|
|
func VFMSUBADD132PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD132PS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VFMSUBADD132PS_BCST_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD132PS.BCST.Z m32 xmm k xmm
|
|
// VFMSUBADD132PS.BCST.Z m32 ymm k ymm
|
|
// VFMSUBADD132PS.BCST.Z m32 zmm k zmm
|
|
func VFMSUBADD132PS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD132PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFMSUBADD132PS_RD_SAE: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD132PS.RD_SAE zmm zmm k zmm
|
|
// VFMSUBADD132PS.RD_SAE zmm zmm zmm
|
|
func VFMSUBADD132PS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD132PS.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUBADD132PS_RD_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD132PS.RD_SAE.Z zmm zmm k zmm
|
|
func VFMSUBADD132PS_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD132PS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMSUBADD132PS_RN_SAE: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD132PS.RN_SAE zmm zmm k zmm
|
|
// VFMSUBADD132PS.RN_SAE zmm zmm zmm
|
|
func VFMSUBADD132PS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD132PS.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUBADD132PS_RN_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD132PS.RN_SAE.Z zmm zmm k zmm
|
|
func VFMSUBADD132PS_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD132PS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMSUBADD132PS_RU_SAE: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD132PS.RU_SAE zmm zmm k zmm
|
|
// VFMSUBADD132PS.RU_SAE zmm zmm zmm
|
|
func VFMSUBADD132PS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD132PS.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUBADD132PS_RU_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD132PS.RU_SAE.Z zmm zmm k zmm
|
|
func VFMSUBADD132PS_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD132PS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMSUBADD132PS_RZ_SAE: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD132PS.RZ_SAE zmm zmm k zmm
|
|
// VFMSUBADD132PS.RZ_SAE zmm zmm zmm
|
|
func VFMSUBADD132PS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD132PS.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUBADD132PS_RZ_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD132PS.RZ_SAE.Z zmm zmm k zmm
|
|
func VFMSUBADD132PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD132PS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMSUBADD132PS_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD132PS.Z m128 xmm k xmm
|
|
// VFMSUBADD132PS.Z m256 ymm k ymm
|
|
// VFMSUBADD132PS.Z xmm xmm k xmm
|
|
// VFMSUBADD132PS.Z ymm ymm k ymm
|
|
// VFMSUBADD132PS.Z m512 zmm k zmm
|
|
// VFMSUBADD132PS.Z zmm zmm k zmm
|
|
func VFMSUBADD132PS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD132PS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFMSUBADD213PD: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD213PD m128 xmm xmm
|
|
// VFMSUBADD213PD m256 ymm ymm
|
|
// VFMSUBADD213PD xmm xmm xmm
|
|
// VFMSUBADD213PD ymm ymm ymm
|
|
// VFMSUBADD213PD m128 xmm k xmm
|
|
// VFMSUBADD213PD m256 ymm k ymm
|
|
// VFMSUBADD213PD xmm xmm k xmm
|
|
// VFMSUBADD213PD ymm ymm k ymm
|
|
// VFMSUBADD213PD m512 zmm k zmm
|
|
// VFMSUBADD213PD m512 zmm zmm
|
|
// VFMSUBADD213PD zmm zmm k zmm
|
|
// VFMSUBADD213PD zmm zmm zmm
|
|
func VFMSUBADD213PD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD213PD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFMSUBADD213PD_BCST: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD213PD.BCST m64 xmm k xmm
|
|
// VFMSUBADD213PD.BCST m64 xmm xmm
|
|
// VFMSUBADD213PD.BCST m64 ymm k ymm
|
|
// VFMSUBADD213PD.BCST m64 ymm ymm
|
|
// VFMSUBADD213PD.BCST m64 zmm k zmm
|
|
// VFMSUBADD213PD.BCST m64 zmm zmm
|
|
func VFMSUBADD213PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD213PD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VFMSUBADD213PD_BCST_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD213PD.BCST.Z m64 xmm k xmm
|
|
// VFMSUBADD213PD.BCST.Z m64 ymm k ymm
|
|
// VFMSUBADD213PD.BCST.Z m64 zmm k zmm
|
|
func VFMSUBADD213PD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD213PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFMSUBADD213PD_RD_SAE: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD213PD.RD_SAE zmm zmm k zmm
|
|
// VFMSUBADD213PD.RD_SAE zmm zmm zmm
|
|
func VFMSUBADD213PD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD213PD.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUBADD213PD_RD_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD213PD.RD_SAE.Z zmm zmm k zmm
|
|
func VFMSUBADD213PD_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD213PD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMSUBADD213PD_RN_SAE: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD213PD.RN_SAE zmm zmm k zmm
|
|
// VFMSUBADD213PD.RN_SAE zmm zmm zmm
|
|
func VFMSUBADD213PD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD213PD.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUBADD213PD_RN_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD213PD.RN_SAE.Z zmm zmm k zmm
|
|
func VFMSUBADD213PD_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD213PD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMSUBADD213PD_RU_SAE: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD213PD.RU_SAE zmm zmm k zmm
|
|
// VFMSUBADD213PD.RU_SAE zmm zmm zmm
|
|
func VFMSUBADD213PD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD213PD.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUBADD213PD_RU_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD213PD.RU_SAE.Z zmm zmm k zmm
|
|
func VFMSUBADD213PD_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD213PD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMSUBADD213PD_RZ_SAE: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD213PD.RZ_SAE zmm zmm k zmm
|
|
// VFMSUBADD213PD.RZ_SAE zmm zmm zmm
|
|
func VFMSUBADD213PD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD213PD.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUBADD213PD_RZ_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD213PD.RZ_SAE.Z zmm zmm k zmm
|
|
func VFMSUBADD213PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD213PD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMSUBADD213PD_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD213PD.Z m128 xmm k xmm
|
|
// VFMSUBADD213PD.Z m256 ymm k ymm
|
|
// VFMSUBADD213PD.Z xmm xmm k xmm
|
|
// VFMSUBADD213PD.Z ymm ymm k ymm
|
|
// VFMSUBADD213PD.Z m512 zmm k zmm
|
|
// VFMSUBADD213PD.Z zmm zmm k zmm
|
|
func VFMSUBADD213PD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD213PD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFMSUBADD213PS: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD213PS m128 xmm xmm
|
|
// VFMSUBADD213PS m256 ymm ymm
|
|
// VFMSUBADD213PS xmm xmm xmm
|
|
// VFMSUBADD213PS ymm ymm ymm
|
|
// VFMSUBADD213PS m128 xmm k xmm
|
|
// VFMSUBADD213PS m256 ymm k ymm
|
|
// VFMSUBADD213PS xmm xmm k xmm
|
|
// VFMSUBADD213PS ymm ymm k ymm
|
|
// VFMSUBADD213PS m512 zmm k zmm
|
|
// VFMSUBADD213PS m512 zmm zmm
|
|
// VFMSUBADD213PS zmm zmm k zmm
|
|
// VFMSUBADD213PS zmm zmm zmm
|
|
func VFMSUBADD213PS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD213PS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFMSUBADD213PS_BCST: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD213PS.BCST m32 xmm k xmm
|
|
// VFMSUBADD213PS.BCST m32 xmm xmm
|
|
// VFMSUBADD213PS.BCST m32 ymm k ymm
|
|
// VFMSUBADD213PS.BCST m32 ymm ymm
|
|
// VFMSUBADD213PS.BCST m32 zmm k zmm
|
|
// VFMSUBADD213PS.BCST m32 zmm zmm
|
|
func VFMSUBADD213PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD213PS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VFMSUBADD213PS_BCST_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD213PS.BCST.Z m32 xmm k xmm
|
|
// VFMSUBADD213PS.BCST.Z m32 ymm k ymm
|
|
// VFMSUBADD213PS.BCST.Z m32 zmm k zmm
|
|
func VFMSUBADD213PS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD213PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFMSUBADD213PS_RD_SAE: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD213PS.RD_SAE zmm zmm k zmm
|
|
// VFMSUBADD213PS.RD_SAE zmm zmm zmm
|
|
func VFMSUBADD213PS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD213PS.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUBADD213PS_RD_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD213PS.RD_SAE.Z zmm zmm k zmm
|
|
func VFMSUBADD213PS_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD213PS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMSUBADD213PS_RN_SAE: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD213PS.RN_SAE zmm zmm k zmm
|
|
// VFMSUBADD213PS.RN_SAE zmm zmm zmm
|
|
func VFMSUBADD213PS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD213PS.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUBADD213PS_RN_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD213PS.RN_SAE.Z zmm zmm k zmm
|
|
func VFMSUBADD213PS_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD213PS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMSUBADD213PS_RU_SAE: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD213PS.RU_SAE zmm zmm k zmm
|
|
// VFMSUBADD213PS.RU_SAE zmm zmm zmm
|
|
func VFMSUBADD213PS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD213PS.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUBADD213PS_RU_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD213PS.RU_SAE.Z zmm zmm k zmm
|
|
func VFMSUBADD213PS_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD213PS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMSUBADD213PS_RZ_SAE: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD213PS.RZ_SAE zmm zmm k zmm
|
|
// VFMSUBADD213PS.RZ_SAE zmm zmm zmm
|
|
func VFMSUBADD213PS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD213PS.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUBADD213PS_RZ_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD213PS.RZ_SAE.Z zmm zmm k zmm
|
|
func VFMSUBADD213PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD213PS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMSUBADD213PS_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD213PS.Z m128 xmm k xmm
|
|
// VFMSUBADD213PS.Z m256 ymm k ymm
|
|
// VFMSUBADD213PS.Z xmm xmm k xmm
|
|
// VFMSUBADD213PS.Z ymm ymm k ymm
|
|
// VFMSUBADD213PS.Z m512 zmm k zmm
|
|
// VFMSUBADD213PS.Z zmm zmm k zmm
|
|
func VFMSUBADD213PS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD213PS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFMSUBADD231PD: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD231PD m128 xmm xmm
|
|
// VFMSUBADD231PD m256 ymm ymm
|
|
// VFMSUBADD231PD xmm xmm xmm
|
|
// VFMSUBADD231PD ymm ymm ymm
|
|
// VFMSUBADD231PD m128 xmm k xmm
|
|
// VFMSUBADD231PD m256 ymm k ymm
|
|
// VFMSUBADD231PD xmm xmm k xmm
|
|
// VFMSUBADD231PD ymm ymm k ymm
|
|
// VFMSUBADD231PD m512 zmm k zmm
|
|
// VFMSUBADD231PD m512 zmm zmm
|
|
// VFMSUBADD231PD zmm zmm k zmm
|
|
// VFMSUBADD231PD zmm zmm zmm
|
|
func VFMSUBADD231PD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD231PD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFMSUBADD231PD_BCST: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD231PD.BCST m64 xmm k xmm
|
|
// VFMSUBADD231PD.BCST m64 xmm xmm
|
|
// VFMSUBADD231PD.BCST m64 ymm k ymm
|
|
// VFMSUBADD231PD.BCST m64 ymm ymm
|
|
// VFMSUBADD231PD.BCST m64 zmm k zmm
|
|
// VFMSUBADD231PD.BCST m64 zmm zmm
|
|
func VFMSUBADD231PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD231PD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VFMSUBADD231PD_BCST_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD231PD.BCST.Z m64 xmm k xmm
|
|
// VFMSUBADD231PD.BCST.Z m64 ymm k ymm
|
|
// VFMSUBADD231PD.BCST.Z m64 zmm k zmm
|
|
func VFMSUBADD231PD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD231PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFMSUBADD231PD_RD_SAE: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD231PD.RD_SAE zmm zmm k zmm
|
|
// VFMSUBADD231PD.RD_SAE zmm zmm zmm
|
|
func VFMSUBADD231PD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD231PD.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUBADD231PD_RD_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD231PD.RD_SAE.Z zmm zmm k zmm
|
|
func VFMSUBADD231PD_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD231PD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMSUBADD231PD_RN_SAE: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD231PD.RN_SAE zmm zmm k zmm
|
|
// VFMSUBADD231PD.RN_SAE zmm zmm zmm
|
|
func VFMSUBADD231PD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD231PD.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUBADD231PD_RN_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD231PD.RN_SAE.Z zmm zmm k zmm
|
|
func VFMSUBADD231PD_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD231PD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMSUBADD231PD_RU_SAE: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD231PD.RU_SAE zmm zmm k zmm
|
|
// VFMSUBADD231PD.RU_SAE zmm zmm zmm
|
|
func VFMSUBADD231PD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD231PD.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUBADD231PD_RU_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD231PD.RU_SAE.Z zmm zmm k zmm
|
|
func VFMSUBADD231PD_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD231PD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMSUBADD231PD_RZ_SAE: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD231PD.RZ_SAE zmm zmm k zmm
|
|
// VFMSUBADD231PD.RZ_SAE zmm zmm zmm
|
|
func VFMSUBADD231PD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD231PD.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUBADD231PD_RZ_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD231PD.RZ_SAE.Z zmm zmm k zmm
|
|
func VFMSUBADD231PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD231PD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMSUBADD231PD_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD231PD.Z m128 xmm k xmm
|
|
// VFMSUBADD231PD.Z m256 ymm k ymm
|
|
// VFMSUBADD231PD.Z xmm xmm k xmm
|
|
// VFMSUBADD231PD.Z ymm ymm k ymm
|
|
// VFMSUBADD231PD.Z m512 zmm k zmm
|
|
// VFMSUBADD231PD.Z zmm zmm k zmm
|
|
func VFMSUBADD231PD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD231PD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFMSUBADD231PS: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD231PS m128 xmm xmm
|
|
// VFMSUBADD231PS m256 ymm ymm
|
|
// VFMSUBADD231PS xmm xmm xmm
|
|
// VFMSUBADD231PS ymm ymm ymm
|
|
// VFMSUBADD231PS m128 xmm k xmm
|
|
// VFMSUBADD231PS m256 ymm k ymm
|
|
// VFMSUBADD231PS xmm xmm k xmm
|
|
// VFMSUBADD231PS ymm ymm k ymm
|
|
// VFMSUBADD231PS m512 zmm k zmm
|
|
// VFMSUBADD231PS m512 zmm zmm
|
|
// VFMSUBADD231PS zmm zmm k zmm
|
|
// VFMSUBADD231PS zmm zmm zmm
|
|
func VFMSUBADD231PS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD231PS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFMSUBADD231PS_BCST: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD231PS.BCST m32 xmm k xmm
|
|
// VFMSUBADD231PS.BCST m32 xmm xmm
|
|
// VFMSUBADD231PS.BCST m32 ymm k ymm
|
|
// VFMSUBADD231PS.BCST m32 ymm ymm
|
|
// VFMSUBADD231PS.BCST m32 zmm k zmm
|
|
// VFMSUBADD231PS.BCST m32 zmm zmm
|
|
func VFMSUBADD231PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD231PS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VFMSUBADD231PS_BCST_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD231PS.BCST.Z m32 xmm k xmm
|
|
// VFMSUBADD231PS.BCST.Z m32 ymm k ymm
|
|
// VFMSUBADD231PS.BCST.Z m32 zmm k zmm
|
|
func VFMSUBADD231PS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD231PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFMSUBADD231PS_RD_SAE: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD231PS.RD_SAE zmm zmm k zmm
|
|
// VFMSUBADD231PS.RD_SAE zmm zmm zmm
|
|
func VFMSUBADD231PS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD231PS.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUBADD231PS_RD_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD231PS.RD_SAE.Z zmm zmm k zmm
|
|
func VFMSUBADD231PS_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD231PS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMSUBADD231PS_RN_SAE: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD231PS.RN_SAE zmm zmm k zmm
|
|
// VFMSUBADD231PS.RN_SAE zmm zmm zmm
|
|
func VFMSUBADD231PS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD231PS.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUBADD231PS_RN_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD231PS.RN_SAE.Z zmm zmm k zmm
|
|
func VFMSUBADD231PS_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD231PS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMSUBADD231PS_RU_SAE: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD231PS.RU_SAE zmm zmm k zmm
|
|
// VFMSUBADD231PS.RU_SAE zmm zmm zmm
|
|
func VFMSUBADD231PS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD231PS.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUBADD231PS_RU_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD231PS.RU_SAE.Z zmm zmm k zmm
|
|
func VFMSUBADD231PS_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD231PS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMSUBADD231PS_RZ_SAE: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD231PS.RZ_SAE zmm zmm k zmm
|
|
// VFMSUBADD231PS.RZ_SAE zmm zmm zmm
|
|
func VFMSUBADD231PS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD231PS.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFMSUBADD231PS_RZ_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD231PS.RZ_SAE.Z zmm zmm k zmm
|
|
func VFMSUBADD231PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD231PS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFMSUBADD231PS_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFMSUBADD231PS.Z m128 xmm k xmm
|
|
// VFMSUBADD231PS.Z m256 ymm k ymm
|
|
// VFMSUBADD231PS.Z xmm xmm k xmm
|
|
// VFMSUBADD231PS.Z ymm ymm k ymm
|
|
// VFMSUBADD231PS.Z m512 zmm k zmm
|
|
// VFMSUBADD231PS.Z zmm zmm k zmm
|
|
func VFMSUBADD231PS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFMSUBADD231PS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFNMADD132PD: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD132PD m128 xmm xmm
|
|
// VFNMADD132PD m256 ymm ymm
|
|
// VFNMADD132PD xmm xmm xmm
|
|
// VFNMADD132PD ymm ymm ymm
|
|
// VFNMADD132PD m128 xmm k xmm
|
|
// VFNMADD132PD m256 ymm k ymm
|
|
// VFNMADD132PD xmm xmm k xmm
|
|
// VFNMADD132PD ymm ymm k ymm
|
|
// VFNMADD132PD m512 zmm k zmm
|
|
// VFNMADD132PD m512 zmm zmm
|
|
// VFNMADD132PD zmm zmm k zmm
|
|
// VFNMADD132PD zmm zmm zmm
|
|
func VFNMADD132PD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD132PD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFNMADD132PD_BCST: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD132PD.BCST m64 xmm k xmm
|
|
// VFNMADD132PD.BCST m64 xmm xmm
|
|
// VFNMADD132PD.BCST m64 ymm k ymm
|
|
// VFNMADD132PD.BCST m64 ymm ymm
|
|
// VFNMADD132PD.BCST m64 zmm k zmm
|
|
// VFNMADD132PD.BCST m64 zmm zmm
|
|
func VFNMADD132PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD132PD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VFNMADD132PD_BCST_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD132PD.BCST.Z m64 xmm k xmm
|
|
// VFNMADD132PD.BCST.Z m64 ymm k ymm
|
|
// VFNMADD132PD.BCST.Z m64 zmm k zmm
|
|
func VFNMADD132PD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD132PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFNMADD132PD_RD_SAE: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD132PD.RD_SAE zmm zmm k zmm
|
|
// VFNMADD132PD.RD_SAE zmm zmm zmm
|
|
func VFNMADD132PD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD132PD.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFNMADD132PD_RD_SAE_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD132PD.RD_SAE.Z zmm zmm k zmm
|
|
func VFNMADD132PD_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD132PD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFNMADD132PD_RN_SAE: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD132PD.RN_SAE zmm zmm k zmm
|
|
// VFNMADD132PD.RN_SAE zmm zmm zmm
|
|
func VFNMADD132PD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD132PD.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFNMADD132PD_RN_SAE_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD132PD.RN_SAE.Z zmm zmm k zmm
|
|
func VFNMADD132PD_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD132PD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFNMADD132PD_RU_SAE: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD132PD.RU_SAE zmm zmm k zmm
|
|
// VFNMADD132PD.RU_SAE zmm zmm zmm
|
|
func VFNMADD132PD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD132PD.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFNMADD132PD_RU_SAE_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD132PD.RU_SAE.Z zmm zmm k zmm
|
|
func VFNMADD132PD_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD132PD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFNMADD132PD_RZ_SAE: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD132PD.RZ_SAE zmm zmm k zmm
|
|
// VFNMADD132PD.RZ_SAE zmm zmm zmm
|
|
func VFNMADD132PD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD132PD.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFNMADD132PD_RZ_SAE_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD132PD.RZ_SAE.Z zmm zmm k zmm
|
|
func VFNMADD132PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD132PD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFNMADD132PD_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD132PD.Z m128 xmm k xmm
|
|
// VFNMADD132PD.Z m256 ymm k ymm
|
|
// VFNMADD132PD.Z xmm xmm k xmm
|
|
// VFNMADD132PD.Z ymm ymm k ymm
|
|
// VFNMADD132PD.Z m512 zmm k zmm
|
|
// VFNMADD132PD.Z zmm zmm k zmm
|
|
func VFNMADD132PD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD132PD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFNMADD132PS: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD132PS m128 xmm xmm
|
|
// VFNMADD132PS m256 ymm ymm
|
|
// VFNMADD132PS xmm xmm xmm
|
|
// VFNMADD132PS ymm ymm ymm
|
|
// VFNMADD132PS m128 xmm k xmm
|
|
// VFNMADD132PS m256 ymm k ymm
|
|
// VFNMADD132PS xmm xmm k xmm
|
|
// VFNMADD132PS ymm ymm k ymm
|
|
// VFNMADD132PS m512 zmm k zmm
|
|
// VFNMADD132PS m512 zmm zmm
|
|
// VFNMADD132PS zmm zmm k zmm
|
|
// VFNMADD132PS zmm zmm zmm
|
|
func VFNMADD132PS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD132PS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFNMADD132PS_BCST: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD132PS.BCST m32 xmm k xmm
|
|
// VFNMADD132PS.BCST m32 xmm xmm
|
|
// VFNMADD132PS.BCST m32 ymm k ymm
|
|
// VFNMADD132PS.BCST m32 ymm ymm
|
|
// VFNMADD132PS.BCST m32 zmm k zmm
|
|
// VFNMADD132PS.BCST m32 zmm zmm
|
|
func VFNMADD132PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD132PS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VFNMADD132PS_BCST_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD132PS.BCST.Z m32 xmm k xmm
|
|
// VFNMADD132PS.BCST.Z m32 ymm k ymm
|
|
// VFNMADD132PS.BCST.Z m32 zmm k zmm
|
|
func VFNMADD132PS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD132PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFNMADD132PS_RD_SAE: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD132PS.RD_SAE zmm zmm k zmm
|
|
// VFNMADD132PS.RD_SAE zmm zmm zmm
|
|
func VFNMADD132PS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD132PS.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFNMADD132PS_RD_SAE_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD132PS.RD_SAE.Z zmm zmm k zmm
|
|
func VFNMADD132PS_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD132PS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFNMADD132PS_RN_SAE: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD132PS.RN_SAE zmm zmm k zmm
|
|
// VFNMADD132PS.RN_SAE zmm zmm zmm
|
|
func VFNMADD132PS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD132PS.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFNMADD132PS_RN_SAE_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD132PS.RN_SAE.Z zmm zmm k zmm
|
|
func VFNMADD132PS_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD132PS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFNMADD132PS_RU_SAE: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD132PS.RU_SAE zmm zmm k zmm
|
|
// VFNMADD132PS.RU_SAE zmm zmm zmm
|
|
func VFNMADD132PS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD132PS.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFNMADD132PS_RU_SAE_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD132PS.RU_SAE.Z zmm zmm k zmm
|
|
func VFNMADD132PS_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD132PS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFNMADD132PS_RZ_SAE: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD132PS.RZ_SAE zmm zmm k zmm
|
|
// VFNMADD132PS.RZ_SAE zmm zmm zmm
|
|
func VFNMADD132PS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD132PS.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFNMADD132PS_RZ_SAE_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD132PS.RZ_SAE.Z zmm zmm k zmm
|
|
func VFNMADD132PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD132PS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFNMADD132PS_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD132PS.Z m128 xmm k xmm
|
|
// VFNMADD132PS.Z m256 ymm k ymm
|
|
// VFNMADD132PS.Z xmm xmm k xmm
|
|
// VFNMADD132PS.Z ymm ymm k ymm
|
|
// VFNMADD132PS.Z m512 zmm k zmm
|
|
// VFNMADD132PS.Z zmm zmm k zmm
|
|
func VFNMADD132PS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD132PS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFNMADD132SD: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD132SD m64 xmm xmm
|
|
// VFNMADD132SD xmm xmm xmm
|
|
// VFNMADD132SD m64 xmm k xmm
|
|
// VFNMADD132SD xmm xmm k xmm
|
|
func VFNMADD132SD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD132SD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFNMADD132SD_RD_SAE: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD132SD.RD_SAE xmm xmm k xmm
|
|
// VFNMADD132SD.RD_SAE xmm xmm xmm
|
|
func VFNMADD132SD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD132SD.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFNMADD132SD_RD_SAE_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD132SD.RD_SAE.Z xmm xmm k xmm
|
|
func VFNMADD132SD_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD132SD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFNMADD132SD_RN_SAE: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD132SD.RN_SAE xmm xmm k xmm
|
|
// VFNMADD132SD.RN_SAE xmm xmm xmm
|
|
func VFNMADD132SD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD132SD.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFNMADD132SD_RN_SAE_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD132SD.RN_SAE.Z xmm xmm k xmm
|
|
func VFNMADD132SD_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD132SD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFNMADD132SD_RU_SAE: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD132SD.RU_SAE xmm xmm k xmm
|
|
// VFNMADD132SD.RU_SAE xmm xmm xmm
|
|
func VFNMADD132SD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD132SD.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFNMADD132SD_RU_SAE_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD132SD.RU_SAE.Z xmm xmm k xmm
|
|
func VFNMADD132SD_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD132SD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFNMADD132SD_RZ_SAE: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD132SD.RZ_SAE xmm xmm k xmm
|
|
// VFNMADD132SD.RZ_SAE xmm xmm xmm
|
|
func VFNMADD132SD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD132SD.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFNMADD132SD_RZ_SAE_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD132SD.RZ_SAE.Z xmm xmm k xmm
|
|
func VFNMADD132SD_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD132SD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFNMADD132SD_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD132SD.Z m64 xmm k xmm
|
|
// VFNMADD132SD.Z xmm xmm k xmm
|
|
func VFNMADD132SD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD132SD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VFNMADD132SS: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD132SS m32 xmm xmm
|
|
// VFNMADD132SS xmm xmm xmm
|
|
// VFNMADD132SS m32 xmm k xmm
|
|
// VFNMADD132SS xmm xmm k xmm
|
|
func VFNMADD132SS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD132SS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFNMADD132SS_RD_SAE: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD132SS.RD_SAE xmm xmm k xmm
|
|
// VFNMADD132SS.RD_SAE xmm xmm xmm
|
|
func VFNMADD132SS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD132SS.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFNMADD132SS_RD_SAE_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD132SS.RD_SAE.Z xmm xmm k xmm
|
|
func VFNMADD132SS_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD132SS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFNMADD132SS_RN_SAE: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD132SS.RN_SAE xmm xmm k xmm
|
|
// VFNMADD132SS.RN_SAE xmm xmm xmm
|
|
func VFNMADD132SS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD132SS.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFNMADD132SS_RN_SAE_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD132SS.RN_SAE.Z xmm xmm k xmm
|
|
func VFNMADD132SS_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD132SS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFNMADD132SS_RU_SAE: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD132SS.RU_SAE xmm xmm k xmm
|
|
// VFNMADD132SS.RU_SAE xmm xmm xmm
|
|
func VFNMADD132SS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD132SS.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFNMADD132SS_RU_SAE_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD132SS.RU_SAE.Z xmm xmm k xmm
|
|
func VFNMADD132SS_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD132SS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFNMADD132SS_RZ_SAE: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD132SS.RZ_SAE xmm xmm k xmm
|
|
// VFNMADD132SS.RZ_SAE xmm xmm xmm
|
|
func VFNMADD132SS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD132SS.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFNMADD132SS_RZ_SAE_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD132SS.RZ_SAE.Z xmm xmm k xmm
|
|
func VFNMADD132SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD132SS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFNMADD132SS_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD132SS.Z m32 xmm k xmm
|
|
// VFNMADD132SS.Z xmm xmm k xmm
|
|
func VFNMADD132SS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD132SS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VFNMADD213PD: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD213PD m128 xmm xmm
|
|
// VFNMADD213PD m256 ymm ymm
|
|
// VFNMADD213PD xmm xmm xmm
|
|
// VFNMADD213PD ymm ymm ymm
|
|
// VFNMADD213PD m128 xmm k xmm
|
|
// VFNMADD213PD m256 ymm k ymm
|
|
// VFNMADD213PD xmm xmm k xmm
|
|
// VFNMADD213PD ymm ymm k ymm
|
|
// VFNMADD213PD m512 zmm k zmm
|
|
// VFNMADD213PD m512 zmm zmm
|
|
// VFNMADD213PD zmm zmm k zmm
|
|
// VFNMADD213PD zmm zmm zmm
|
|
func VFNMADD213PD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD213PD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFNMADD213PD_BCST: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD213PD.BCST m64 xmm k xmm
|
|
// VFNMADD213PD.BCST m64 xmm xmm
|
|
// VFNMADD213PD.BCST m64 ymm k ymm
|
|
// VFNMADD213PD.BCST m64 ymm ymm
|
|
// VFNMADD213PD.BCST m64 zmm k zmm
|
|
// VFNMADD213PD.BCST m64 zmm zmm
|
|
func VFNMADD213PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD213PD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VFNMADD213PD_BCST_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD213PD.BCST.Z m64 xmm k xmm
|
|
// VFNMADD213PD.BCST.Z m64 ymm k ymm
|
|
// VFNMADD213PD.BCST.Z m64 zmm k zmm
|
|
func VFNMADD213PD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD213PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFNMADD213PD_RD_SAE: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD213PD.RD_SAE zmm zmm k zmm
|
|
// VFNMADD213PD.RD_SAE zmm zmm zmm
|
|
func VFNMADD213PD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD213PD.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFNMADD213PD_RD_SAE_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD213PD.RD_SAE.Z zmm zmm k zmm
|
|
func VFNMADD213PD_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD213PD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFNMADD213PD_RN_SAE: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD213PD.RN_SAE zmm zmm k zmm
|
|
// VFNMADD213PD.RN_SAE zmm zmm zmm
|
|
func VFNMADD213PD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD213PD.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFNMADD213PD_RN_SAE_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD213PD.RN_SAE.Z zmm zmm k zmm
|
|
func VFNMADD213PD_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD213PD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFNMADD213PD_RU_SAE: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD213PD.RU_SAE zmm zmm k zmm
|
|
// VFNMADD213PD.RU_SAE zmm zmm zmm
|
|
func VFNMADD213PD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD213PD.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFNMADD213PD_RU_SAE_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD213PD.RU_SAE.Z zmm zmm k zmm
|
|
func VFNMADD213PD_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD213PD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFNMADD213PD_RZ_SAE: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD213PD.RZ_SAE zmm zmm k zmm
|
|
// VFNMADD213PD.RZ_SAE zmm zmm zmm
|
|
func VFNMADD213PD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD213PD.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFNMADD213PD_RZ_SAE_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD213PD.RZ_SAE.Z zmm zmm k zmm
|
|
func VFNMADD213PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD213PD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFNMADD213PD_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD213PD.Z m128 xmm k xmm
|
|
// VFNMADD213PD.Z m256 ymm k ymm
|
|
// VFNMADD213PD.Z xmm xmm k xmm
|
|
// VFNMADD213PD.Z ymm ymm k ymm
|
|
// VFNMADD213PD.Z m512 zmm k zmm
|
|
// VFNMADD213PD.Z zmm zmm k zmm
|
|
func VFNMADD213PD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD213PD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFNMADD213PS: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD213PS m128 xmm xmm
|
|
// VFNMADD213PS m256 ymm ymm
|
|
// VFNMADD213PS xmm xmm xmm
|
|
// VFNMADD213PS ymm ymm ymm
|
|
// VFNMADD213PS m128 xmm k xmm
|
|
// VFNMADD213PS m256 ymm k ymm
|
|
// VFNMADD213PS xmm xmm k xmm
|
|
// VFNMADD213PS ymm ymm k ymm
|
|
// VFNMADD213PS m512 zmm k zmm
|
|
// VFNMADD213PS m512 zmm zmm
|
|
// VFNMADD213PS zmm zmm k zmm
|
|
// VFNMADD213PS zmm zmm zmm
|
|
func VFNMADD213PS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD213PS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFNMADD213PS_BCST: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD213PS.BCST m32 xmm k xmm
|
|
// VFNMADD213PS.BCST m32 xmm xmm
|
|
// VFNMADD213PS.BCST m32 ymm k ymm
|
|
// VFNMADD213PS.BCST m32 ymm ymm
|
|
// VFNMADD213PS.BCST m32 zmm k zmm
|
|
// VFNMADD213PS.BCST m32 zmm zmm
|
|
func VFNMADD213PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD213PS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VFNMADD213PS_BCST_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD213PS.BCST.Z m32 xmm k xmm
|
|
// VFNMADD213PS.BCST.Z m32 ymm k ymm
|
|
// VFNMADD213PS.BCST.Z m32 zmm k zmm
|
|
func VFNMADD213PS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD213PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFNMADD213PS_RD_SAE: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD213PS.RD_SAE zmm zmm k zmm
|
|
// VFNMADD213PS.RD_SAE zmm zmm zmm
|
|
func VFNMADD213PS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD213PS.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFNMADD213PS_RD_SAE_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD213PS.RD_SAE.Z zmm zmm k zmm
|
|
func VFNMADD213PS_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD213PS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFNMADD213PS_RN_SAE: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD213PS.RN_SAE zmm zmm k zmm
|
|
// VFNMADD213PS.RN_SAE zmm zmm zmm
|
|
func VFNMADD213PS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD213PS.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFNMADD213PS_RN_SAE_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD213PS.RN_SAE.Z zmm zmm k zmm
|
|
func VFNMADD213PS_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD213PS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFNMADD213PS_RU_SAE: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD213PS.RU_SAE zmm zmm k zmm
|
|
// VFNMADD213PS.RU_SAE zmm zmm zmm
|
|
func VFNMADD213PS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD213PS.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFNMADD213PS_RU_SAE_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD213PS.RU_SAE.Z zmm zmm k zmm
|
|
func VFNMADD213PS_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD213PS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFNMADD213PS_RZ_SAE: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD213PS.RZ_SAE zmm zmm k zmm
|
|
// VFNMADD213PS.RZ_SAE zmm zmm zmm
|
|
func VFNMADD213PS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD213PS.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFNMADD213PS_RZ_SAE_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD213PS.RZ_SAE.Z zmm zmm k zmm
|
|
func VFNMADD213PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD213PS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFNMADD213PS_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD213PS.Z m128 xmm k xmm
|
|
// VFNMADD213PS.Z m256 ymm k ymm
|
|
// VFNMADD213PS.Z xmm xmm k xmm
|
|
// VFNMADD213PS.Z ymm ymm k ymm
|
|
// VFNMADD213PS.Z m512 zmm k zmm
|
|
// VFNMADD213PS.Z zmm zmm k zmm
|
|
func VFNMADD213PS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD213PS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFNMADD213SD: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD213SD m64 xmm xmm
|
|
// VFNMADD213SD xmm xmm xmm
|
|
// VFNMADD213SD m64 xmm k xmm
|
|
// VFNMADD213SD xmm xmm k xmm
|
|
func VFNMADD213SD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD213SD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFNMADD213SD_RD_SAE: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD213SD.RD_SAE xmm xmm k xmm
|
|
// VFNMADD213SD.RD_SAE xmm xmm xmm
|
|
func VFNMADD213SD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD213SD.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFNMADD213SD_RD_SAE_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD213SD.RD_SAE.Z xmm xmm k xmm
|
|
func VFNMADD213SD_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD213SD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFNMADD213SD_RN_SAE: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD213SD.RN_SAE xmm xmm k xmm
|
|
// VFNMADD213SD.RN_SAE xmm xmm xmm
|
|
func VFNMADD213SD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD213SD.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFNMADD213SD_RN_SAE_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD213SD.RN_SAE.Z xmm xmm k xmm
|
|
func VFNMADD213SD_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD213SD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFNMADD213SD_RU_SAE: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD213SD.RU_SAE xmm xmm k xmm
|
|
// VFNMADD213SD.RU_SAE xmm xmm xmm
|
|
func VFNMADD213SD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD213SD.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFNMADD213SD_RU_SAE_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD213SD.RU_SAE.Z xmm xmm k xmm
|
|
func VFNMADD213SD_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD213SD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFNMADD213SD_RZ_SAE: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD213SD.RZ_SAE xmm xmm k xmm
|
|
// VFNMADD213SD.RZ_SAE xmm xmm xmm
|
|
func VFNMADD213SD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD213SD.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFNMADD213SD_RZ_SAE_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD213SD.RZ_SAE.Z xmm xmm k xmm
|
|
func VFNMADD213SD_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD213SD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFNMADD213SD_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD213SD.Z m64 xmm k xmm
|
|
// VFNMADD213SD.Z xmm xmm k xmm
|
|
func VFNMADD213SD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD213SD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VFNMADD213SS: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD213SS m32 xmm xmm
|
|
// VFNMADD213SS xmm xmm xmm
|
|
// VFNMADD213SS m32 xmm k xmm
|
|
// VFNMADD213SS xmm xmm k xmm
|
|
func VFNMADD213SS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD213SS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFNMADD213SS_RD_SAE: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD213SS.RD_SAE xmm xmm k xmm
|
|
// VFNMADD213SS.RD_SAE xmm xmm xmm
|
|
func VFNMADD213SS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD213SS.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFNMADD213SS_RD_SAE_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD213SS.RD_SAE.Z xmm xmm k xmm
|
|
func VFNMADD213SS_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD213SS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFNMADD213SS_RN_SAE: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD213SS.RN_SAE xmm xmm k xmm
|
|
// VFNMADD213SS.RN_SAE xmm xmm xmm
|
|
func VFNMADD213SS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD213SS.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFNMADD213SS_RN_SAE_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD213SS.RN_SAE.Z xmm xmm k xmm
|
|
func VFNMADD213SS_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD213SS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFNMADD213SS_RU_SAE: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD213SS.RU_SAE xmm xmm k xmm
|
|
// VFNMADD213SS.RU_SAE xmm xmm xmm
|
|
func VFNMADD213SS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD213SS.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFNMADD213SS_RU_SAE_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD213SS.RU_SAE.Z xmm xmm k xmm
|
|
func VFNMADD213SS_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD213SS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFNMADD213SS_RZ_SAE: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD213SS.RZ_SAE xmm xmm k xmm
|
|
// VFNMADD213SS.RZ_SAE xmm xmm xmm
|
|
func VFNMADD213SS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD213SS.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFNMADD213SS_RZ_SAE_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD213SS.RZ_SAE.Z xmm xmm k xmm
|
|
func VFNMADD213SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD213SS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFNMADD213SS_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD213SS.Z m32 xmm k xmm
|
|
// VFNMADD213SS.Z xmm xmm k xmm
|
|
func VFNMADD213SS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD213SS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VFNMADD231PD: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD231PD m128 xmm xmm
|
|
// VFNMADD231PD m256 ymm ymm
|
|
// VFNMADD231PD xmm xmm xmm
|
|
// VFNMADD231PD ymm ymm ymm
|
|
// VFNMADD231PD m128 xmm k xmm
|
|
// VFNMADD231PD m256 ymm k ymm
|
|
// VFNMADD231PD xmm xmm k xmm
|
|
// VFNMADD231PD ymm ymm k ymm
|
|
// VFNMADD231PD m512 zmm k zmm
|
|
// VFNMADD231PD m512 zmm zmm
|
|
// VFNMADD231PD zmm zmm k zmm
|
|
// VFNMADD231PD zmm zmm zmm
|
|
func VFNMADD231PD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD231PD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFNMADD231PD_BCST: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD231PD.BCST m64 xmm k xmm
|
|
// VFNMADD231PD.BCST m64 xmm xmm
|
|
// VFNMADD231PD.BCST m64 ymm k ymm
|
|
// VFNMADD231PD.BCST m64 ymm ymm
|
|
// VFNMADD231PD.BCST m64 zmm k zmm
|
|
// VFNMADD231PD.BCST m64 zmm zmm
|
|
func VFNMADD231PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD231PD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VFNMADD231PD_BCST_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD231PD.BCST.Z m64 xmm k xmm
|
|
// VFNMADD231PD.BCST.Z m64 ymm k ymm
|
|
// VFNMADD231PD.BCST.Z m64 zmm k zmm
|
|
func VFNMADD231PD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD231PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFNMADD231PD_RD_SAE: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD231PD.RD_SAE zmm zmm k zmm
|
|
// VFNMADD231PD.RD_SAE zmm zmm zmm
|
|
func VFNMADD231PD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD231PD.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFNMADD231PD_RD_SAE_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD231PD.RD_SAE.Z zmm zmm k zmm
|
|
func VFNMADD231PD_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD231PD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFNMADD231PD_RN_SAE: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD231PD.RN_SAE zmm zmm k zmm
|
|
// VFNMADD231PD.RN_SAE zmm zmm zmm
|
|
func VFNMADD231PD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD231PD.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFNMADD231PD_RN_SAE_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD231PD.RN_SAE.Z zmm zmm k zmm
|
|
func VFNMADD231PD_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD231PD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFNMADD231PD_RU_SAE: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD231PD.RU_SAE zmm zmm k zmm
|
|
// VFNMADD231PD.RU_SAE zmm zmm zmm
|
|
func VFNMADD231PD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD231PD.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFNMADD231PD_RU_SAE_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD231PD.RU_SAE.Z zmm zmm k zmm
|
|
func VFNMADD231PD_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD231PD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFNMADD231PD_RZ_SAE: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD231PD.RZ_SAE zmm zmm k zmm
|
|
// VFNMADD231PD.RZ_SAE zmm zmm zmm
|
|
func VFNMADD231PD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD231PD.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFNMADD231PD_RZ_SAE_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD231PD.RZ_SAE.Z zmm zmm k zmm
|
|
func VFNMADD231PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD231PD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFNMADD231PD_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD231PD.Z m128 xmm k xmm
|
|
// VFNMADD231PD.Z m256 ymm k ymm
|
|
// VFNMADD231PD.Z xmm xmm k xmm
|
|
// VFNMADD231PD.Z ymm ymm k ymm
|
|
// VFNMADD231PD.Z m512 zmm k zmm
|
|
// VFNMADD231PD.Z zmm zmm k zmm
|
|
func VFNMADD231PD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD231PD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFNMADD231PS: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD231PS m128 xmm xmm
|
|
// VFNMADD231PS m256 ymm ymm
|
|
// VFNMADD231PS xmm xmm xmm
|
|
// VFNMADD231PS ymm ymm ymm
|
|
// VFNMADD231PS m128 xmm k xmm
|
|
// VFNMADD231PS m256 ymm k ymm
|
|
// VFNMADD231PS xmm xmm k xmm
|
|
// VFNMADD231PS ymm ymm k ymm
|
|
// VFNMADD231PS m512 zmm k zmm
|
|
// VFNMADD231PS m512 zmm zmm
|
|
// VFNMADD231PS zmm zmm k zmm
|
|
// VFNMADD231PS zmm zmm zmm
|
|
func VFNMADD231PS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD231PS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFNMADD231PS_BCST: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD231PS.BCST m32 xmm k xmm
|
|
// VFNMADD231PS.BCST m32 xmm xmm
|
|
// VFNMADD231PS.BCST m32 ymm k ymm
|
|
// VFNMADD231PS.BCST m32 ymm ymm
|
|
// VFNMADD231PS.BCST m32 zmm k zmm
|
|
// VFNMADD231PS.BCST m32 zmm zmm
|
|
func VFNMADD231PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD231PS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VFNMADD231PS_BCST_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD231PS.BCST.Z m32 xmm k xmm
|
|
// VFNMADD231PS.BCST.Z m32 ymm k ymm
|
|
// VFNMADD231PS.BCST.Z m32 zmm k zmm
|
|
func VFNMADD231PS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD231PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFNMADD231PS_RD_SAE: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD231PS.RD_SAE zmm zmm k zmm
|
|
// VFNMADD231PS.RD_SAE zmm zmm zmm
|
|
func VFNMADD231PS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD231PS.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFNMADD231PS_RD_SAE_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD231PS.RD_SAE.Z zmm zmm k zmm
|
|
func VFNMADD231PS_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD231PS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFNMADD231PS_RN_SAE: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD231PS.RN_SAE zmm zmm k zmm
|
|
// VFNMADD231PS.RN_SAE zmm zmm zmm
|
|
func VFNMADD231PS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD231PS.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFNMADD231PS_RN_SAE_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD231PS.RN_SAE.Z zmm zmm k zmm
|
|
func VFNMADD231PS_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD231PS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFNMADD231PS_RU_SAE: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD231PS.RU_SAE zmm zmm k zmm
|
|
// VFNMADD231PS.RU_SAE zmm zmm zmm
|
|
func VFNMADD231PS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD231PS.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFNMADD231PS_RU_SAE_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD231PS.RU_SAE.Z zmm zmm k zmm
|
|
func VFNMADD231PS_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD231PS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFNMADD231PS_RZ_SAE: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD231PS.RZ_SAE zmm zmm k zmm
|
|
// VFNMADD231PS.RZ_SAE zmm zmm zmm
|
|
func VFNMADD231PS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD231PS.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFNMADD231PS_RZ_SAE_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD231PS.RZ_SAE.Z zmm zmm k zmm
|
|
func VFNMADD231PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD231PS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFNMADD231PS_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD231PS.Z m128 xmm k xmm
|
|
// VFNMADD231PS.Z m256 ymm k ymm
|
|
// VFNMADD231PS.Z xmm xmm k xmm
|
|
// VFNMADD231PS.Z ymm ymm k ymm
|
|
// VFNMADD231PS.Z m512 zmm k zmm
|
|
// VFNMADD231PS.Z zmm zmm k zmm
|
|
func VFNMADD231PS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD231PS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFNMADD231SD: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD231SD m64 xmm xmm
|
|
// VFNMADD231SD xmm xmm xmm
|
|
// VFNMADD231SD m64 xmm k xmm
|
|
// VFNMADD231SD xmm xmm k xmm
|
|
func VFNMADD231SD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD231SD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFNMADD231SD_RD_SAE: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD231SD.RD_SAE xmm xmm k xmm
|
|
// VFNMADD231SD.RD_SAE xmm xmm xmm
|
|
func VFNMADD231SD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD231SD.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFNMADD231SD_RD_SAE_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD231SD.RD_SAE.Z xmm xmm k xmm
|
|
func VFNMADD231SD_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD231SD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFNMADD231SD_RN_SAE: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD231SD.RN_SAE xmm xmm k xmm
|
|
// VFNMADD231SD.RN_SAE xmm xmm xmm
|
|
func VFNMADD231SD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD231SD.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFNMADD231SD_RN_SAE_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD231SD.RN_SAE.Z xmm xmm k xmm
|
|
func VFNMADD231SD_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD231SD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFNMADD231SD_RU_SAE: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD231SD.RU_SAE xmm xmm k xmm
|
|
// VFNMADD231SD.RU_SAE xmm xmm xmm
|
|
func VFNMADD231SD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD231SD.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFNMADD231SD_RU_SAE_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD231SD.RU_SAE.Z xmm xmm k xmm
|
|
func VFNMADD231SD_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD231SD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFNMADD231SD_RZ_SAE: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD231SD.RZ_SAE xmm xmm k xmm
|
|
// VFNMADD231SD.RZ_SAE xmm xmm xmm
|
|
func VFNMADD231SD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD231SD.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFNMADD231SD_RZ_SAE_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD231SD.RZ_SAE.Z xmm xmm k xmm
|
|
func VFNMADD231SD_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD231SD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFNMADD231SD_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD231SD.Z m64 xmm k xmm
|
|
// VFNMADD231SD.Z xmm xmm k xmm
|
|
func VFNMADD231SD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD231SD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VFNMADD231SS: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD231SS m32 xmm xmm
|
|
// VFNMADD231SS xmm xmm xmm
|
|
// VFNMADD231SS m32 xmm k xmm
|
|
// VFNMADD231SS xmm xmm k xmm
|
|
func VFNMADD231SS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD231SS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFNMADD231SS_RD_SAE: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD231SS.RD_SAE xmm xmm k xmm
|
|
// VFNMADD231SS.RD_SAE xmm xmm xmm
|
|
func VFNMADD231SS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD231SS.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFNMADD231SS_RD_SAE_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD231SS.RD_SAE.Z xmm xmm k xmm
|
|
func VFNMADD231SS_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD231SS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFNMADD231SS_RN_SAE: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD231SS.RN_SAE xmm xmm k xmm
|
|
// VFNMADD231SS.RN_SAE xmm xmm xmm
|
|
func VFNMADD231SS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD231SS.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFNMADD231SS_RN_SAE_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD231SS.RN_SAE.Z xmm xmm k xmm
|
|
func VFNMADD231SS_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD231SS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFNMADD231SS_RU_SAE: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD231SS.RU_SAE xmm xmm k xmm
|
|
// VFNMADD231SS.RU_SAE xmm xmm xmm
|
|
func VFNMADD231SS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD231SS.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFNMADD231SS_RU_SAE_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD231SS.RU_SAE.Z xmm xmm k xmm
|
|
func VFNMADD231SS_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD231SS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFNMADD231SS_RZ_SAE: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD231SS.RZ_SAE xmm xmm k xmm
|
|
// VFNMADD231SS.RZ_SAE xmm xmm xmm
|
|
func VFNMADD231SS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD231SS.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFNMADD231SS_RZ_SAE_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD231SS.RZ_SAE.Z xmm xmm k xmm
|
|
func VFNMADD231SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD231SS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFNMADD231SS_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMADD231SS.Z m32 xmm k xmm
|
|
// VFNMADD231SS.Z xmm xmm k xmm
|
|
func VFNMADD231SS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMADD231SS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VFNMSUB132PD: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB132PD m128 xmm xmm
|
|
// VFNMSUB132PD m256 ymm ymm
|
|
// VFNMSUB132PD xmm xmm xmm
|
|
// VFNMSUB132PD ymm ymm ymm
|
|
// VFNMSUB132PD m128 xmm k xmm
|
|
// VFNMSUB132PD m256 ymm k ymm
|
|
// VFNMSUB132PD xmm xmm k xmm
|
|
// VFNMSUB132PD ymm ymm k ymm
|
|
// VFNMSUB132PD m512 zmm k zmm
|
|
// VFNMSUB132PD m512 zmm zmm
|
|
// VFNMSUB132PD zmm zmm k zmm
|
|
// VFNMSUB132PD zmm zmm zmm
|
|
func VFNMSUB132PD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB132PD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFNMSUB132PD_BCST: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB132PD.BCST m64 xmm k xmm
|
|
// VFNMSUB132PD.BCST m64 xmm xmm
|
|
// VFNMSUB132PD.BCST m64 ymm k ymm
|
|
// VFNMSUB132PD.BCST m64 ymm ymm
|
|
// VFNMSUB132PD.BCST m64 zmm k zmm
|
|
// VFNMSUB132PD.BCST m64 zmm zmm
|
|
func VFNMSUB132PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB132PD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VFNMSUB132PD_BCST_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB132PD.BCST.Z m64 xmm k xmm
|
|
// VFNMSUB132PD.BCST.Z m64 ymm k ymm
|
|
// VFNMSUB132PD.BCST.Z m64 zmm k zmm
|
|
func VFNMSUB132PD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB132PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFNMSUB132PD_RD_SAE: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB132PD.RD_SAE zmm zmm k zmm
|
|
// VFNMSUB132PD.RD_SAE zmm zmm zmm
|
|
func VFNMSUB132PD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB132PD.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFNMSUB132PD_RD_SAE_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB132PD.RD_SAE.Z zmm zmm k zmm
|
|
func VFNMSUB132PD_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB132PD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFNMSUB132PD_RN_SAE: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB132PD.RN_SAE zmm zmm k zmm
|
|
// VFNMSUB132PD.RN_SAE zmm zmm zmm
|
|
func VFNMSUB132PD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB132PD.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFNMSUB132PD_RN_SAE_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB132PD.RN_SAE.Z zmm zmm k zmm
|
|
func VFNMSUB132PD_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB132PD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFNMSUB132PD_RU_SAE: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB132PD.RU_SAE zmm zmm k zmm
|
|
// VFNMSUB132PD.RU_SAE zmm zmm zmm
|
|
func VFNMSUB132PD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB132PD.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFNMSUB132PD_RU_SAE_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB132PD.RU_SAE.Z zmm zmm k zmm
|
|
func VFNMSUB132PD_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB132PD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFNMSUB132PD_RZ_SAE: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB132PD.RZ_SAE zmm zmm k zmm
|
|
// VFNMSUB132PD.RZ_SAE zmm zmm zmm
|
|
func VFNMSUB132PD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB132PD.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFNMSUB132PD_RZ_SAE_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB132PD.RZ_SAE.Z zmm zmm k zmm
|
|
func VFNMSUB132PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB132PD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFNMSUB132PD_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB132PD.Z m128 xmm k xmm
|
|
// VFNMSUB132PD.Z m256 ymm k ymm
|
|
// VFNMSUB132PD.Z xmm xmm k xmm
|
|
// VFNMSUB132PD.Z ymm ymm k ymm
|
|
// VFNMSUB132PD.Z m512 zmm k zmm
|
|
// VFNMSUB132PD.Z zmm zmm k zmm
|
|
func VFNMSUB132PD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB132PD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFNMSUB132PS: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB132PS m128 xmm xmm
|
|
// VFNMSUB132PS m256 ymm ymm
|
|
// VFNMSUB132PS xmm xmm xmm
|
|
// VFNMSUB132PS ymm ymm ymm
|
|
// VFNMSUB132PS m128 xmm k xmm
|
|
// VFNMSUB132PS m256 ymm k ymm
|
|
// VFNMSUB132PS xmm xmm k xmm
|
|
// VFNMSUB132PS ymm ymm k ymm
|
|
// VFNMSUB132PS m512 zmm k zmm
|
|
// VFNMSUB132PS m512 zmm zmm
|
|
// VFNMSUB132PS zmm zmm k zmm
|
|
// VFNMSUB132PS zmm zmm zmm
|
|
func VFNMSUB132PS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB132PS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFNMSUB132PS_BCST: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB132PS.BCST m32 xmm k xmm
|
|
// VFNMSUB132PS.BCST m32 xmm xmm
|
|
// VFNMSUB132PS.BCST m32 ymm k ymm
|
|
// VFNMSUB132PS.BCST m32 ymm ymm
|
|
// VFNMSUB132PS.BCST m32 zmm k zmm
|
|
// VFNMSUB132PS.BCST m32 zmm zmm
|
|
func VFNMSUB132PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB132PS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VFNMSUB132PS_BCST_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB132PS.BCST.Z m32 xmm k xmm
|
|
// VFNMSUB132PS.BCST.Z m32 ymm k ymm
|
|
// VFNMSUB132PS.BCST.Z m32 zmm k zmm
|
|
func VFNMSUB132PS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB132PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFNMSUB132PS_RD_SAE: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB132PS.RD_SAE zmm zmm k zmm
|
|
// VFNMSUB132PS.RD_SAE zmm zmm zmm
|
|
func VFNMSUB132PS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB132PS.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFNMSUB132PS_RD_SAE_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB132PS.RD_SAE.Z zmm zmm k zmm
|
|
func VFNMSUB132PS_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB132PS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFNMSUB132PS_RN_SAE: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB132PS.RN_SAE zmm zmm k zmm
|
|
// VFNMSUB132PS.RN_SAE zmm zmm zmm
|
|
func VFNMSUB132PS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB132PS.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFNMSUB132PS_RN_SAE_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB132PS.RN_SAE.Z zmm zmm k zmm
|
|
func VFNMSUB132PS_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB132PS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFNMSUB132PS_RU_SAE: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB132PS.RU_SAE zmm zmm k zmm
|
|
// VFNMSUB132PS.RU_SAE zmm zmm zmm
|
|
func VFNMSUB132PS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB132PS.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFNMSUB132PS_RU_SAE_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB132PS.RU_SAE.Z zmm zmm k zmm
|
|
func VFNMSUB132PS_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB132PS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFNMSUB132PS_RZ_SAE: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB132PS.RZ_SAE zmm zmm k zmm
|
|
// VFNMSUB132PS.RZ_SAE zmm zmm zmm
|
|
func VFNMSUB132PS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB132PS.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFNMSUB132PS_RZ_SAE_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB132PS.RZ_SAE.Z zmm zmm k zmm
|
|
func VFNMSUB132PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB132PS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFNMSUB132PS_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB132PS.Z m128 xmm k xmm
|
|
// VFNMSUB132PS.Z m256 ymm k ymm
|
|
// VFNMSUB132PS.Z xmm xmm k xmm
|
|
// VFNMSUB132PS.Z ymm ymm k ymm
|
|
// VFNMSUB132PS.Z m512 zmm k zmm
|
|
// VFNMSUB132PS.Z zmm zmm k zmm
|
|
func VFNMSUB132PS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB132PS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFNMSUB132SD: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB132SD m64 xmm xmm
|
|
// VFNMSUB132SD xmm xmm xmm
|
|
// VFNMSUB132SD m64 xmm k xmm
|
|
// VFNMSUB132SD xmm xmm k xmm
|
|
func VFNMSUB132SD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB132SD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFNMSUB132SD_RD_SAE: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB132SD.RD_SAE xmm xmm k xmm
|
|
// VFNMSUB132SD.RD_SAE xmm xmm xmm
|
|
func VFNMSUB132SD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB132SD.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFNMSUB132SD_RD_SAE_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB132SD.RD_SAE.Z xmm xmm k xmm
|
|
func VFNMSUB132SD_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB132SD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFNMSUB132SD_RN_SAE: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB132SD.RN_SAE xmm xmm k xmm
|
|
// VFNMSUB132SD.RN_SAE xmm xmm xmm
|
|
func VFNMSUB132SD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB132SD.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFNMSUB132SD_RN_SAE_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB132SD.RN_SAE.Z xmm xmm k xmm
|
|
func VFNMSUB132SD_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB132SD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFNMSUB132SD_RU_SAE: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB132SD.RU_SAE xmm xmm k xmm
|
|
// VFNMSUB132SD.RU_SAE xmm xmm xmm
|
|
func VFNMSUB132SD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB132SD.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFNMSUB132SD_RU_SAE_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB132SD.RU_SAE.Z xmm xmm k xmm
|
|
func VFNMSUB132SD_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB132SD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFNMSUB132SD_RZ_SAE: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB132SD.RZ_SAE xmm xmm k xmm
|
|
// VFNMSUB132SD.RZ_SAE xmm xmm xmm
|
|
func VFNMSUB132SD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB132SD.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFNMSUB132SD_RZ_SAE_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB132SD.RZ_SAE.Z xmm xmm k xmm
|
|
func VFNMSUB132SD_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB132SD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFNMSUB132SD_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB132SD.Z m64 xmm k xmm
|
|
// VFNMSUB132SD.Z xmm xmm k xmm
|
|
func VFNMSUB132SD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB132SD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VFNMSUB132SS: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB132SS m32 xmm xmm
|
|
// VFNMSUB132SS xmm xmm xmm
|
|
// VFNMSUB132SS m32 xmm k xmm
|
|
// VFNMSUB132SS xmm xmm k xmm
|
|
func VFNMSUB132SS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB132SS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFNMSUB132SS_RD_SAE: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB132SS.RD_SAE xmm xmm k xmm
|
|
// VFNMSUB132SS.RD_SAE xmm xmm xmm
|
|
func VFNMSUB132SS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB132SS.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFNMSUB132SS_RD_SAE_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB132SS.RD_SAE.Z xmm xmm k xmm
|
|
func VFNMSUB132SS_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB132SS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFNMSUB132SS_RN_SAE: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB132SS.RN_SAE xmm xmm k xmm
|
|
// VFNMSUB132SS.RN_SAE xmm xmm xmm
|
|
func VFNMSUB132SS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB132SS.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFNMSUB132SS_RN_SAE_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB132SS.RN_SAE.Z xmm xmm k xmm
|
|
func VFNMSUB132SS_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB132SS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFNMSUB132SS_RU_SAE: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB132SS.RU_SAE xmm xmm k xmm
|
|
// VFNMSUB132SS.RU_SAE xmm xmm xmm
|
|
func VFNMSUB132SS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB132SS.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFNMSUB132SS_RU_SAE_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB132SS.RU_SAE.Z xmm xmm k xmm
|
|
func VFNMSUB132SS_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB132SS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFNMSUB132SS_RZ_SAE: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB132SS.RZ_SAE xmm xmm k xmm
|
|
// VFNMSUB132SS.RZ_SAE xmm xmm xmm
|
|
func VFNMSUB132SS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB132SS.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFNMSUB132SS_RZ_SAE_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB132SS.RZ_SAE.Z xmm xmm k xmm
|
|
func VFNMSUB132SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB132SS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFNMSUB132SS_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB132SS.Z m32 xmm k xmm
|
|
// VFNMSUB132SS.Z xmm xmm k xmm
|
|
func VFNMSUB132SS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB132SS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VFNMSUB213PD: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB213PD m128 xmm xmm
|
|
// VFNMSUB213PD m256 ymm ymm
|
|
// VFNMSUB213PD xmm xmm xmm
|
|
// VFNMSUB213PD ymm ymm ymm
|
|
// VFNMSUB213PD m128 xmm k xmm
|
|
// VFNMSUB213PD m256 ymm k ymm
|
|
// VFNMSUB213PD xmm xmm k xmm
|
|
// VFNMSUB213PD ymm ymm k ymm
|
|
// VFNMSUB213PD m512 zmm k zmm
|
|
// VFNMSUB213PD m512 zmm zmm
|
|
// VFNMSUB213PD zmm zmm k zmm
|
|
// VFNMSUB213PD zmm zmm zmm
|
|
func VFNMSUB213PD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB213PD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFNMSUB213PD_BCST: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB213PD.BCST m64 xmm k xmm
|
|
// VFNMSUB213PD.BCST m64 xmm xmm
|
|
// VFNMSUB213PD.BCST m64 ymm k ymm
|
|
// VFNMSUB213PD.BCST m64 ymm ymm
|
|
// VFNMSUB213PD.BCST m64 zmm k zmm
|
|
// VFNMSUB213PD.BCST m64 zmm zmm
|
|
func VFNMSUB213PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB213PD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VFNMSUB213PD_BCST_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB213PD.BCST.Z m64 xmm k xmm
|
|
// VFNMSUB213PD.BCST.Z m64 ymm k ymm
|
|
// VFNMSUB213PD.BCST.Z m64 zmm k zmm
|
|
func VFNMSUB213PD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB213PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFNMSUB213PD_RD_SAE: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB213PD.RD_SAE zmm zmm k zmm
|
|
// VFNMSUB213PD.RD_SAE zmm zmm zmm
|
|
func VFNMSUB213PD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB213PD.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFNMSUB213PD_RD_SAE_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB213PD.RD_SAE.Z zmm zmm k zmm
|
|
func VFNMSUB213PD_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB213PD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFNMSUB213PD_RN_SAE: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB213PD.RN_SAE zmm zmm k zmm
|
|
// VFNMSUB213PD.RN_SAE zmm zmm zmm
|
|
func VFNMSUB213PD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB213PD.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFNMSUB213PD_RN_SAE_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB213PD.RN_SAE.Z zmm zmm k zmm
|
|
func VFNMSUB213PD_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB213PD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFNMSUB213PD_RU_SAE: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB213PD.RU_SAE zmm zmm k zmm
|
|
// VFNMSUB213PD.RU_SAE zmm zmm zmm
|
|
func VFNMSUB213PD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB213PD.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFNMSUB213PD_RU_SAE_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB213PD.RU_SAE.Z zmm zmm k zmm
|
|
func VFNMSUB213PD_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB213PD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFNMSUB213PD_RZ_SAE: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB213PD.RZ_SAE zmm zmm k zmm
|
|
// VFNMSUB213PD.RZ_SAE zmm zmm zmm
|
|
func VFNMSUB213PD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB213PD.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFNMSUB213PD_RZ_SAE_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB213PD.RZ_SAE.Z zmm zmm k zmm
|
|
func VFNMSUB213PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB213PD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFNMSUB213PD_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB213PD.Z m128 xmm k xmm
|
|
// VFNMSUB213PD.Z m256 ymm k ymm
|
|
// VFNMSUB213PD.Z xmm xmm k xmm
|
|
// VFNMSUB213PD.Z ymm ymm k ymm
|
|
// VFNMSUB213PD.Z m512 zmm k zmm
|
|
// VFNMSUB213PD.Z zmm zmm k zmm
|
|
func VFNMSUB213PD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB213PD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFNMSUB213PS: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB213PS m128 xmm xmm
|
|
// VFNMSUB213PS m256 ymm ymm
|
|
// VFNMSUB213PS xmm xmm xmm
|
|
// VFNMSUB213PS ymm ymm ymm
|
|
// VFNMSUB213PS m128 xmm k xmm
|
|
// VFNMSUB213PS m256 ymm k ymm
|
|
// VFNMSUB213PS xmm xmm k xmm
|
|
// VFNMSUB213PS ymm ymm k ymm
|
|
// VFNMSUB213PS m512 zmm k zmm
|
|
// VFNMSUB213PS m512 zmm zmm
|
|
// VFNMSUB213PS zmm zmm k zmm
|
|
// VFNMSUB213PS zmm zmm zmm
|
|
func VFNMSUB213PS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB213PS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFNMSUB213PS_BCST: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB213PS.BCST m32 xmm k xmm
|
|
// VFNMSUB213PS.BCST m32 xmm xmm
|
|
// VFNMSUB213PS.BCST m32 ymm k ymm
|
|
// VFNMSUB213PS.BCST m32 ymm ymm
|
|
// VFNMSUB213PS.BCST m32 zmm k zmm
|
|
// VFNMSUB213PS.BCST m32 zmm zmm
|
|
func VFNMSUB213PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB213PS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VFNMSUB213PS_BCST_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB213PS.BCST.Z m32 xmm k xmm
|
|
// VFNMSUB213PS.BCST.Z m32 ymm k ymm
|
|
// VFNMSUB213PS.BCST.Z m32 zmm k zmm
|
|
func VFNMSUB213PS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB213PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFNMSUB213PS_RD_SAE: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB213PS.RD_SAE zmm zmm k zmm
|
|
// VFNMSUB213PS.RD_SAE zmm zmm zmm
|
|
func VFNMSUB213PS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB213PS.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFNMSUB213PS_RD_SAE_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB213PS.RD_SAE.Z zmm zmm k zmm
|
|
func VFNMSUB213PS_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB213PS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFNMSUB213PS_RN_SAE: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB213PS.RN_SAE zmm zmm k zmm
|
|
// VFNMSUB213PS.RN_SAE zmm zmm zmm
|
|
func VFNMSUB213PS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB213PS.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFNMSUB213PS_RN_SAE_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB213PS.RN_SAE.Z zmm zmm k zmm
|
|
func VFNMSUB213PS_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB213PS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFNMSUB213PS_RU_SAE: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB213PS.RU_SAE zmm zmm k zmm
|
|
// VFNMSUB213PS.RU_SAE zmm zmm zmm
|
|
func VFNMSUB213PS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB213PS.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFNMSUB213PS_RU_SAE_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB213PS.RU_SAE.Z zmm zmm k zmm
|
|
func VFNMSUB213PS_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB213PS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFNMSUB213PS_RZ_SAE: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB213PS.RZ_SAE zmm zmm k zmm
|
|
// VFNMSUB213PS.RZ_SAE zmm zmm zmm
|
|
func VFNMSUB213PS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB213PS.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFNMSUB213PS_RZ_SAE_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB213PS.RZ_SAE.Z zmm zmm k zmm
|
|
func VFNMSUB213PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB213PS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFNMSUB213PS_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB213PS.Z m128 xmm k xmm
|
|
// VFNMSUB213PS.Z m256 ymm k ymm
|
|
// VFNMSUB213PS.Z xmm xmm k xmm
|
|
// VFNMSUB213PS.Z ymm ymm k ymm
|
|
// VFNMSUB213PS.Z m512 zmm k zmm
|
|
// VFNMSUB213PS.Z zmm zmm k zmm
|
|
func VFNMSUB213PS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB213PS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFNMSUB213SD: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB213SD m64 xmm xmm
|
|
// VFNMSUB213SD xmm xmm xmm
|
|
// VFNMSUB213SD m64 xmm k xmm
|
|
// VFNMSUB213SD xmm xmm k xmm
|
|
func VFNMSUB213SD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB213SD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFNMSUB213SD_RD_SAE: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB213SD.RD_SAE xmm xmm k xmm
|
|
// VFNMSUB213SD.RD_SAE xmm xmm xmm
|
|
func VFNMSUB213SD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB213SD.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFNMSUB213SD_RD_SAE_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB213SD.RD_SAE.Z xmm xmm k xmm
|
|
func VFNMSUB213SD_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB213SD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFNMSUB213SD_RN_SAE: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB213SD.RN_SAE xmm xmm k xmm
|
|
// VFNMSUB213SD.RN_SAE xmm xmm xmm
|
|
func VFNMSUB213SD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB213SD.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFNMSUB213SD_RN_SAE_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB213SD.RN_SAE.Z xmm xmm k xmm
|
|
func VFNMSUB213SD_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB213SD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFNMSUB213SD_RU_SAE: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB213SD.RU_SAE xmm xmm k xmm
|
|
// VFNMSUB213SD.RU_SAE xmm xmm xmm
|
|
func VFNMSUB213SD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB213SD.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFNMSUB213SD_RU_SAE_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB213SD.RU_SAE.Z xmm xmm k xmm
|
|
func VFNMSUB213SD_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB213SD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFNMSUB213SD_RZ_SAE: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB213SD.RZ_SAE xmm xmm k xmm
|
|
// VFNMSUB213SD.RZ_SAE xmm xmm xmm
|
|
func VFNMSUB213SD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB213SD.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFNMSUB213SD_RZ_SAE_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB213SD.RZ_SAE.Z xmm xmm k xmm
|
|
func VFNMSUB213SD_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB213SD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFNMSUB213SD_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB213SD.Z m64 xmm k xmm
|
|
// VFNMSUB213SD.Z xmm xmm k xmm
|
|
func VFNMSUB213SD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB213SD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VFNMSUB213SS: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB213SS m32 xmm xmm
|
|
// VFNMSUB213SS xmm xmm xmm
|
|
// VFNMSUB213SS m32 xmm k xmm
|
|
// VFNMSUB213SS xmm xmm k xmm
|
|
func VFNMSUB213SS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB213SS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFNMSUB213SS_RD_SAE: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB213SS.RD_SAE xmm xmm k xmm
|
|
// VFNMSUB213SS.RD_SAE xmm xmm xmm
|
|
func VFNMSUB213SS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB213SS.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFNMSUB213SS_RD_SAE_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB213SS.RD_SAE.Z xmm xmm k xmm
|
|
func VFNMSUB213SS_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB213SS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFNMSUB213SS_RN_SAE: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB213SS.RN_SAE xmm xmm k xmm
|
|
// VFNMSUB213SS.RN_SAE xmm xmm xmm
|
|
func VFNMSUB213SS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB213SS.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFNMSUB213SS_RN_SAE_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB213SS.RN_SAE.Z xmm xmm k xmm
|
|
func VFNMSUB213SS_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB213SS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFNMSUB213SS_RU_SAE: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB213SS.RU_SAE xmm xmm k xmm
|
|
// VFNMSUB213SS.RU_SAE xmm xmm xmm
|
|
func VFNMSUB213SS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB213SS.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFNMSUB213SS_RU_SAE_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB213SS.RU_SAE.Z xmm xmm k xmm
|
|
func VFNMSUB213SS_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB213SS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFNMSUB213SS_RZ_SAE: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB213SS.RZ_SAE xmm xmm k xmm
|
|
// VFNMSUB213SS.RZ_SAE xmm xmm xmm
|
|
func VFNMSUB213SS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB213SS.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFNMSUB213SS_RZ_SAE_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB213SS.RZ_SAE.Z xmm xmm k xmm
|
|
func VFNMSUB213SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB213SS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFNMSUB213SS_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB213SS.Z m32 xmm k xmm
|
|
// VFNMSUB213SS.Z xmm xmm k xmm
|
|
func VFNMSUB213SS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB213SS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VFNMSUB231PD: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB231PD m128 xmm xmm
|
|
// VFNMSUB231PD m256 ymm ymm
|
|
// VFNMSUB231PD xmm xmm xmm
|
|
// VFNMSUB231PD ymm ymm ymm
|
|
// VFNMSUB231PD m128 xmm k xmm
|
|
// VFNMSUB231PD m256 ymm k ymm
|
|
// VFNMSUB231PD xmm xmm k xmm
|
|
// VFNMSUB231PD ymm ymm k ymm
|
|
// VFNMSUB231PD m512 zmm k zmm
|
|
// VFNMSUB231PD m512 zmm zmm
|
|
// VFNMSUB231PD zmm zmm k zmm
|
|
// VFNMSUB231PD zmm zmm zmm
|
|
func VFNMSUB231PD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB231PD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFNMSUB231PD_BCST: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB231PD.BCST m64 xmm k xmm
|
|
// VFNMSUB231PD.BCST m64 xmm xmm
|
|
// VFNMSUB231PD.BCST m64 ymm k ymm
|
|
// VFNMSUB231PD.BCST m64 ymm ymm
|
|
// VFNMSUB231PD.BCST m64 zmm k zmm
|
|
// VFNMSUB231PD.BCST m64 zmm zmm
|
|
func VFNMSUB231PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB231PD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VFNMSUB231PD_BCST_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB231PD.BCST.Z m64 xmm k xmm
|
|
// VFNMSUB231PD.BCST.Z m64 ymm k ymm
|
|
// VFNMSUB231PD.BCST.Z m64 zmm k zmm
|
|
func VFNMSUB231PD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB231PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFNMSUB231PD_RD_SAE: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB231PD.RD_SAE zmm zmm k zmm
|
|
// VFNMSUB231PD.RD_SAE zmm zmm zmm
|
|
func VFNMSUB231PD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB231PD.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFNMSUB231PD_RD_SAE_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB231PD.RD_SAE.Z zmm zmm k zmm
|
|
func VFNMSUB231PD_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB231PD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFNMSUB231PD_RN_SAE: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB231PD.RN_SAE zmm zmm k zmm
|
|
// VFNMSUB231PD.RN_SAE zmm zmm zmm
|
|
func VFNMSUB231PD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB231PD.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFNMSUB231PD_RN_SAE_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB231PD.RN_SAE.Z zmm zmm k zmm
|
|
func VFNMSUB231PD_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB231PD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFNMSUB231PD_RU_SAE: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB231PD.RU_SAE zmm zmm k zmm
|
|
// VFNMSUB231PD.RU_SAE zmm zmm zmm
|
|
func VFNMSUB231PD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB231PD.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFNMSUB231PD_RU_SAE_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB231PD.RU_SAE.Z zmm zmm k zmm
|
|
func VFNMSUB231PD_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB231PD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFNMSUB231PD_RZ_SAE: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB231PD.RZ_SAE zmm zmm k zmm
|
|
// VFNMSUB231PD.RZ_SAE zmm zmm zmm
|
|
func VFNMSUB231PD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB231PD.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFNMSUB231PD_RZ_SAE_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB231PD.RZ_SAE.Z zmm zmm k zmm
|
|
func VFNMSUB231PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB231PD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFNMSUB231PD_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB231PD.Z m128 xmm k xmm
|
|
// VFNMSUB231PD.Z m256 ymm k ymm
|
|
// VFNMSUB231PD.Z xmm xmm k xmm
|
|
// VFNMSUB231PD.Z ymm ymm k ymm
|
|
// VFNMSUB231PD.Z m512 zmm k zmm
|
|
// VFNMSUB231PD.Z zmm zmm k zmm
|
|
func VFNMSUB231PD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB231PD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFNMSUB231PS: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB231PS m128 xmm xmm
|
|
// VFNMSUB231PS m256 ymm ymm
|
|
// VFNMSUB231PS xmm xmm xmm
|
|
// VFNMSUB231PS ymm ymm ymm
|
|
// VFNMSUB231PS m128 xmm k xmm
|
|
// VFNMSUB231PS m256 ymm k ymm
|
|
// VFNMSUB231PS xmm xmm k xmm
|
|
// VFNMSUB231PS ymm ymm k ymm
|
|
// VFNMSUB231PS m512 zmm k zmm
|
|
// VFNMSUB231PS m512 zmm zmm
|
|
// VFNMSUB231PS zmm zmm k zmm
|
|
// VFNMSUB231PS zmm zmm zmm
|
|
func VFNMSUB231PS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB231PS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFNMSUB231PS_BCST: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB231PS.BCST m32 xmm k xmm
|
|
// VFNMSUB231PS.BCST m32 xmm xmm
|
|
// VFNMSUB231PS.BCST m32 ymm k ymm
|
|
// VFNMSUB231PS.BCST m32 ymm ymm
|
|
// VFNMSUB231PS.BCST m32 zmm k zmm
|
|
// VFNMSUB231PS.BCST m32 zmm zmm
|
|
func VFNMSUB231PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB231PS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VFNMSUB231PS_BCST_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB231PS.BCST.Z m32 xmm k xmm
|
|
// VFNMSUB231PS.BCST.Z m32 ymm k ymm
|
|
// VFNMSUB231PS.BCST.Z m32 zmm k zmm
|
|
func VFNMSUB231PS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB231PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFNMSUB231PS_RD_SAE: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB231PS.RD_SAE zmm zmm k zmm
|
|
// VFNMSUB231PS.RD_SAE zmm zmm zmm
|
|
func VFNMSUB231PS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB231PS.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFNMSUB231PS_RD_SAE_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB231PS.RD_SAE.Z zmm zmm k zmm
|
|
func VFNMSUB231PS_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB231PS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFNMSUB231PS_RN_SAE: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB231PS.RN_SAE zmm zmm k zmm
|
|
// VFNMSUB231PS.RN_SAE zmm zmm zmm
|
|
func VFNMSUB231PS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB231PS.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFNMSUB231PS_RN_SAE_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB231PS.RN_SAE.Z zmm zmm k zmm
|
|
func VFNMSUB231PS_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB231PS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFNMSUB231PS_RU_SAE: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB231PS.RU_SAE zmm zmm k zmm
|
|
// VFNMSUB231PS.RU_SAE zmm zmm zmm
|
|
func VFNMSUB231PS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB231PS.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFNMSUB231PS_RU_SAE_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB231PS.RU_SAE.Z zmm zmm k zmm
|
|
func VFNMSUB231PS_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB231PS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFNMSUB231PS_RZ_SAE: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB231PS.RZ_SAE zmm zmm k zmm
|
|
// VFNMSUB231PS.RZ_SAE zmm zmm zmm
|
|
func VFNMSUB231PS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB231PS.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFNMSUB231PS_RZ_SAE_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB231PS.RZ_SAE.Z zmm zmm k zmm
|
|
func VFNMSUB231PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB231PS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VFNMSUB231PS_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB231PS.Z m128 xmm k xmm
|
|
// VFNMSUB231PS.Z m256 ymm k ymm
|
|
// VFNMSUB231PS.Z xmm xmm k xmm
|
|
// VFNMSUB231PS.Z ymm ymm k ymm
|
|
// VFNMSUB231PS.Z m512 zmm k zmm
|
|
// VFNMSUB231PS.Z zmm zmm k zmm
|
|
func VFNMSUB231PS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB231PS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VFNMSUB231SD: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB231SD m64 xmm xmm
|
|
// VFNMSUB231SD xmm xmm xmm
|
|
// VFNMSUB231SD m64 xmm k xmm
|
|
// VFNMSUB231SD xmm xmm k xmm
|
|
func VFNMSUB231SD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB231SD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFNMSUB231SD_RD_SAE: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB231SD.RD_SAE xmm xmm k xmm
|
|
// VFNMSUB231SD.RD_SAE xmm xmm xmm
|
|
func VFNMSUB231SD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB231SD.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFNMSUB231SD_RD_SAE_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB231SD.RD_SAE.Z xmm xmm k xmm
|
|
func VFNMSUB231SD_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB231SD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFNMSUB231SD_RN_SAE: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB231SD.RN_SAE xmm xmm k xmm
|
|
// VFNMSUB231SD.RN_SAE xmm xmm xmm
|
|
func VFNMSUB231SD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB231SD.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFNMSUB231SD_RN_SAE_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB231SD.RN_SAE.Z xmm xmm k xmm
|
|
func VFNMSUB231SD_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB231SD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFNMSUB231SD_RU_SAE: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB231SD.RU_SAE xmm xmm k xmm
|
|
// VFNMSUB231SD.RU_SAE xmm xmm xmm
|
|
func VFNMSUB231SD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB231SD.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFNMSUB231SD_RU_SAE_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB231SD.RU_SAE.Z xmm xmm k xmm
|
|
func VFNMSUB231SD_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB231SD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFNMSUB231SD_RZ_SAE: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB231SD.RZ_SAE xmm xmm k xmm
|
|
// VFNMSUB231SD.RZ_SAE xmm xmm xmm
|
|
func VFNMSUB231SD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB231SD.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFNMSUB231SD_RZ_SAE_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB231SD.RZ_SAE.Z xmm xmm k xmm
|
|
func VFNMSUB231SD_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB231SD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFNMSUB231SD_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB231SD.Z m64 xmm k xmm
|
|
// VFNMSUB231SD.Z xmm xmm k xmm
|
|
func VFNMSUB231SD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB231SD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VFNMSUB231SS: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB231SS m32 xmm xmm
|
|
// VFNMSUB231SS xmm xmm xmm
|
|
// VFNMSUB231SS m32 xmm k xmm
|
|
// VFNMSUB231SS xmm xmm k xmm
|
|
func VFNMSUB231SS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB231SS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFNMSUB231SS_RD_SAE: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB231SS.RD_SAE xmm xmm k xmm
|
|
// VFNMSUB231SS.RD_SAE xmm xmm xmm
|
|
func VFNMSUB231SS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB231SS.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VFNMSUB231SS_RD_SAE_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB231SS.RD_SAE.Z xmm xmm k xmm
|
|
func VFNMSUB231SS_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB231SS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFNMSUB231SS_RN_SAE: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB231SS.RN_SAE xmm xmm k xmm
|
|
// VFNMSUB231SS.RN_SAE xmm xmm xmm
|
|
func VFNMSUB231SS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB231SS.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VFNMSUB231SS_RN_SAE_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB231SS.RN_SAE.Z xmm xmm k xmm
|
|
func VFNMSUB231SS_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB231SS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFNMSUB231SS_RU_SAE: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB231SS.RU_SAE xmm xmm k xmm
|
|
// VFNMSUB231SS.RU_SAE xmm xmm xmm
|
|
func VFNMSUB231SS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB231SS.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VFNMSUB231SS_RU_SAE_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB231SS.RU_SAE.Z xmm xmm k xmm
|
|
func VFNMSUB231SS_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB231SS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFNMSUB231SS_RZ_SAE: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB231SS.RZ_SAE xmm xmm k xmm
|
|
// VFNMSUB231SS.RZ_SAE xmm xmm xmm
|
|
func VFNMSUB231SS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB231SS.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VFNMSUB231SS_RZ_SAE_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB231SS.RZ_SAE.Z xmm xmm k xmm
|
|
func VFNMSUB231SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB231SS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VFNMSUB231SS_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFNMSUB231SS.Z m32 xmm k xmm
|
|
// VFNMSUB231SS.Z xmm xmm k xmm
|
|
func VFNMSUB231SS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFNMSUB231SS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VFPCLASSPDX: Test Class of Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFPCLASSPDX imm8 m128 k k
|
|
// VFPCLASSPDX imm8 m128 k
|
|
// VFPCLASSPDX imm8 xmm k k
|
|
// VFPCLASSPDX imm8 xmm k
|
|
func VFPCLASSPDX(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFPCLASSPDX.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFPCLASSPDX_BCST: Test Class of Packed Double-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFPCLASSPDX.BCST imm8 m64 k k
|
|
// VFPCLASSPDX.BCST imm8 m64 k
|
|
func VFPCLASSPDX_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFPCLASSPDX.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VFPCLASSPDY: Test Class of Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFPCLASSPDY imm8 m256 k k
|
|
// VFPCLASSPDY imm8 m256 k
|
|
// VFPCLASSPDY imm8 ymm k k
|
|
// VFPCLASSPDY imm8 ymm k
|
|
func VFPCLASSPDY(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFPCLASSPDY.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFPCLASSPDY_BCST: Test Class of Packed Double-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFPCLASSPDY.BCST imm8 m64 k k
|
|
// VFPCLASSPDY.BCST imm8 m64 k
|
|
func VFPCLASSPDY_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFPCLASSPDY.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VFPCLASSPDZ: Test Class of Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFPCLASSPDZ imm8 m512 k k
|
|
// VFPCLASSPDZ imm8 m512 k
|
|
// VFPCLASSPDZ imm8 zmm k k
|
|
// VFPCLASSPDZ imm8 zmm k
|
|
func VFPCLASSPDZ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFPCLASSPDZ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFPCLASSPDZ_BCST: Test Class of Packed Double-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFPCLASSPDZ.BCST imm8 m64 k k
|
|
// VFPCLASSPDZ.BCST imm8 m64 k
|
|
func VFPCLASSPDZ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFPCLASSPDZ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VFPCLASSPSX: Test Class of Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFPCLASSPSX imm8 m128 k k
|
|
// VFPCLASSPSX imm8 m128 k
|
|
// VFPCLASSPSX imm8 xmm k k
|
|
// VFPCLASSPSX imm8 xmm k
|
|
func VFPCLASSPSX(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFPCLASSPSX.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFPCLASSPSX_BCST: Test Class of Packed Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFPCLASSPSX.BCST imm8 m32 k k
|
|
// VFPCLASSPSX.BCST imm8 m32 k
|
|
func VFPCLASSPSX_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFPCLASSPSX.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VFPCLASSPSY: Test Class of Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFPCLASSPSY imm8 m256 k k
|
|
// VFPCLASSPSY imm8 m256 k
|
|
// VFPCLASSPSY imm8 ymm k k
|
|
// VFPCLASSPSY imm8 ymm k
|
|
func VFPCLASSPSY(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFPCLASSPSY.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFPCLASSPSY_BCST: Test Class of Packed Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFPCLASSPSY.BCST imm8 m32 k k
|
|
// VFPCLASSPSY.BCST imm8 m32 k
|
|
func VFPCLASSPSY_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFPCLASSPSY.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VFPCLASSPSZ: Test Class of Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFPCLASSPSZ imm8 m512 k k
|
|
// VFPCLASSPSZ imm8 m512 k
|
|
// VFPCLASSPSZ imm8 zmm k k
|
|
// VFPCLASSPSZ imm8 zmm k
|
|
func VFPCLASSPSZ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFPCLASSPSZ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFPCLASSPSZ_BCST: Test Class of Packed Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFPCLASSPSZ.BCST imm8 m32 k k
|
|
// VFPCLASSPSZ.BCST imm8 m32 k
|
|
func VFPCLASSPSZ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFPCLASSPSZ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VFPCLASSSD: Test Class of Scalar Double-Precision Floating-Point Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFPCLASSSD imm8 m64 k k
|
|
// VFPCLASSSD imm8 m64 k
|
|
// VFPCLASSSD imm8 xmm k k
|
|
// VFPCLASSSD imm8 xmm k
|
|
func VFPCLASSSD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFPCLASSSD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VFPCLASSSS: Test Class of Scalar Single-Precision Floating-Point Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VFPCLASSSS imm8 m32 k k
|
|
// VFPCLASSSS imm8 m32 k
|
|
// VFPCLASSSS imm8 xmm k k
|
|
// VFPCLASSSS imm8 xmm k
|
|
func VFPCLASSSS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVFPCLASSSS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VGATHERDPD: Gather Packed Double-Precision Floating-Point Values Using Signed Doubleword Indices.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VGATHERDPD xmm vm32x xmm
|
|
// VGATHERDPD ymm vm32x ymm
|
|
// VGATHERDPD vm32x k xmm
|
|
// VGATHERDPD vm32x k ymm
|
|
// VGATHERDPD vm32y k zmm
|
|
func VGATHERDPD(vxy, kv, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGATHERDPD.Forms(), sffxs{}, []operand.Op{vxy, kv, xyz})
|
|
}
|
|
|
|
// VGATHERDPS: Gather Packed Single-Precision Floating-Point Values Using Signed Doubleword Indices.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VGATHERDPS xmm vm32x xmm
|
|
// VGATHERDPS ymm vm32y ymm
|
|
// VGATHERDPS vm32x k xmm
|
|
// VGATHERDPS vm32y k ymm
|
|
// VGATHERDPS vm32z k zmm
|
|
func VGATHERDPS(vxy, kv, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGATHERDPS.Forms(), sffxs{}, []operand.Op{vxy, kv, xyz})
|
|
}
|
|
|
|
// VGATHERQPD: Gather Packed Double-Precision Floating-Point Values Using Signed Quadword Indices.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VGATHERQPD xmm vm64x xmm
|
|
// VGATHERQPD ymm vm64y ymm
|
|
// VGATHERQPD vm64x k xmm
|
|
// VGATHERQPD vm64y k ymm
|
|
// VGATHERQPD vm64z k zmm
|
|
func VGATHERQPD(vxy, kv, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGATHERQPD.Forms(), sffxs{}, []operand.Op{vxy, kv, xyz})
|
|
}
|
|
|
|
// VGATHERQPS: Gather Packed Single-Precision Floating-Point Values Using Signed Quadword Indices.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VGATHERQPS xmm vm64x xmm
|
|
// VGATHERQPS xmm vm64y xmm
|
|
// VGATHERQPS vm64x k xmm
|
|
// VGATHERQPS vm64y k xmm
|
|
// VGATHERQPS vm64z k ymm
|
|
func VGATHERQPS(vx, kv, xy operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGATHERQPS.Forms(), sffxs{}, []operand.Op{vx, kv, xy})
|
|
}
|
|
|
|
// VGETEXPPD: Extract Exponents of Packed Double-Precision Floating-Point Values as Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VGETEXPPD m128 k xmm
|
|
// VGETEXPPD m128 xmm
|
|
// VGETEXPPD m256 k ymm
|
|
// VGETEXPPD m256 ymm
|
|
// VGETEXPPD xmm k xmm
|
|
// VGETEXPPD xmm xmm
|
|
// VGETEXPPD ymm k ymm
|
|
// VGETEXPPD ymm ymm
|
|
// VGETEXPPD m512 k zmm
|
|
// VGETEXPPD m512 zmm
|
|
// VGETEXPPD zmm k zmm
|
|
// VGETEXPPD zmm zmm
|
|
func VGETEXPPD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGETEXPPD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VGETEXPPD_BCST: Extract Exponents of Packed Double-Precision Floating-Point Values as Double-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VGETEXPPD.BCST m64 k xmm
|
|
// VGETEXPPD.BCST m64 k ymm
|
|
// VGETEXPPD.BCST m64 xmm
|
|
// VGETEXPPD.BCST m64 ymm
|
|
// VGETEXPPD.BCST m64 k zmm
|
|
// VGETEXPPD.BCST m64 zmm
|
|
func VGETEXPPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGETEXPPD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VGETEXPPD_BCST_Z: Extract Exponents of Packed Double-Precision Floating-Point Values as Double-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VGETEXPPD.BCST.Z m64 k xmm
|
|
// VGETEXPPD.BCST.Z m64 k ymm
|
|
// VGETEXPPD.BCST.Z m64 k zmm
|
|
func VGETEXPPD_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGETEXPPD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz})
|
|
}
|
|
|
|
// VGETEXPPD_SAE: Extract Exponents of Packed Double-Precision Floating-Point Values as Double-Precision Floating-Point Values (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VGETEXPPD.SAE zmm k zmm
|
|
// VGETEXPPD.SAE zmm zmm
|
|
func VGETEXPPD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGETEXPPD.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VGETEXPPD_SAE_Z: Extract Exponents of Packed Double-Precision Floating-Point Values as Double-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VGETEXPPD.SAE.Z zmm k zmm
|
|
func VGETEXPPD_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGETEXPPD.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VGETEXPPD_Z: Extract Exponents of Packed Double-Precision Floating-Point Values as Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VGETEXPPD.Z m128 k xmm
|
|
// VGETEXPPD.Z m256 k ymm
|
|
// VGETEXPPD.Z xmm k xmm
|
|
// VGETEXPPD.Z ymm k ymm
|
|
// VGETEXPPD.Z m512 k zmm
|
|
// VGETEXPPD.Z zmm k zmm
|
|
func VGETEXPPD_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGETEXPPD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz})
|
|
}
|
|
|
|
// VGETEXPPS: Extract Exponents of Packed Single-Precision Floating-Point Values as Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VGETEXPPS m128 k xmm
|
|
// VGETEXPPS m128 xmm
|
|
// VGETEXPPS m256 k ymm
|
|
// VGETEXPPS m256 ymm
|
|
// VGETEXPPS xmm k xmm
|
|
// VGETEXPPS xmm xmm
|
|
// VGETEXPPS ymm k ymm
|
|
// VGETEXPPS ymm ymm
|
|
// VGETEXPPS m512 k zmm
|
|
// VGETEXPPS m512 zmm
|
|
// VGETEXPPS zmm k zmm
|
|
// VGETEXPPS zmm zmm
|
|
func VGETEXPPS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGETEXPPS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VGETEXPPS_BCST: Extract Exponents of Packed Single-Precision Floating-Point Values as Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VGETEXPPS.BCST m32 k xmm
|
|
// VGETEXPPS.BCST m32 k ymm
|
|
// VGETEXPPS.BCST m32 xmm
|
|
// VGETEXPPS.BCST m32 ymm
|
|
// VGETEXPPS.BCST m32 k zmm
|
|
// VGETEXPPS.BCST m32 zmm
|
|
func VGETEXPPS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGETEXPPS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VGETEXPPS_BCST_Z: Extract Exponents of Packed Single-Precision Floating-Point Values as Single-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VGETEXPPS.BCST.Z m32 k xmm
|
|
// VGETEXPPS.BCST.Z m32 k ymm
|
|
// VGETEXPPS.BCST.Z m32 k zmm
|
|
func VGETEXPPS_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGETEXPPS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz})
|
|
}
|
|
|
|
// VGETEXPPS_SAE: Extract Exponents of Packed Single-Precision Floating-Point Values as Single-Precision Floating-Point Values (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VGETEXPPS.SAE zmm k zmm
|
|
// VGETEXPPS.SAE zmm zmm
|
|
func VGETEXPPS_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGETEXPPS.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VGETEXPPS_SAE_Z: Extract Exponents of Packed Single-Precision Floating-Point Values as Single-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VGETEXPPS.SAE.Z zmm k zmm
|
|
func VGETEXPPS_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGETEXPPS.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VGETEXPPS_Z: Extract Exponents of Packed Single-Precision Floating-Point Values as Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VGETEXPPS.Z m128 k xmm
|
|
// VGETEXPPS.Z m256 k ymm
|
|
// VGETEXPPS.Z xmm k xmm
|
|
// VGETEXPPS.Z ymm k ymm
|
|
// VGETEXPPS.Z m512 k zmm
|
|
// VGETEXPPS.Z zmm k zmm
|
|
func VGETEXPPS_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGETEXPPS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz})
|
|
}
|
|
|
|
// VGETEXPSD: Extract Exponent of Scalar Double-Precision Floating-Point Value as Double-Precision Floating-Point Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VGETEXPSD m64 xmm k xmm
|
|
// VGETEXPSD m64 xmm xmm
|
|
// VGETEXPSD xmm xmm k xmm
|
|
// VGETEXPSD xmm xmm xmm
|
|
func VGETEXPSD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGETEXPSD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VGETEXPSD_SAE: Extract Exponent of Scalar Double-Precision Floating-Point Value as Double-Precision Floating-Point Value (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VGETEXPSD.SAE xmm xmm k xmm
|
|
// VGETEXPSD.SAE xmm xmm xmm
|
|
func VGETEXPSD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGETEXPSD.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VGETEXPSD_SAE_Z: Extract Exponent of Scalar Double-Precision Floating-Point Value as Double-Precision Floating-Point Value (Suppress All Exceptions, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VGETEXPSD.SAE.Z xmm xmm k xmm
|
|
func VGETEXPSD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGETEXPSD.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VGETEXPSD_Z: Extract Exponent of Scalar Double-Precision Floating-Point Value as Double-Precision Floating-Point Value (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VGETEXPSD.Z m64 xmm k xmm
|
|
// VGETEXPSD.Z xmm xmm k xmm
|
|
func VGETEXPSD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGETEXPSD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VGETEXPSS: Extract Exponent of Scalar Single-Precision Floating-Point Value as Single-Precision Floating-Point Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VGETEXPSS m32 xmm k xmm
|
|
// VGETEXPSS m32 xmm xmm
|
|
// VGETEXPSS xmm xmm k xmm
|
|
// VGETEXPSS xmm xmm xmm
|
|
func VGETEXPSS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGETEXPSS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VGETEXPSS_SAE: Extract Exponent of Scalar Single-Precision Floating-Point Value as Single-Precision Floating-Point Value (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VGETEXPSS.SAE xmm xmm k xmm
|
|
// VGETEXPSS.SAE xmm xmm xmm
|
|
func VGETEXPSS_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGETEXPSS.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VGETEXPSS_SAE_Z: Extract Exponent of Scalar Single-Precision Floating-Point Value as Single-Precision Floating-Point Value (Suppress All Exceptions, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VGETEXPSS.SAE.Z xmm xmm k xmm
|
|
func VGETEXPSS_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGETEXPSS.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VGETEXPSS_Z: Extract Exponent of Scalar Single-Precision Floating-Point Value as Single-Precision Floating-Point Value (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VGETEXPSS.Z m32 xmm k xmm
|
|
// VGETEXPSS.Z xmm xmm k xmm
|
|
func VGETEXPSS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGETEXPSS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VGETMANTPD: Extract Normalized Mantissas from Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VGETMANTPD imm8 m128 k xmm
|
|
// VGETMANTPD imm8 m128 xmm
|
|
// VGETMANTPD imm8 m256 k ymm
|
|
// VGETMANTPD imm8 m256 ymm
|
|
// VGETMANTPD imm8 xmm k xmm
|
|
// VGETMANTPD imm8 xmm xmm
|
|
// VGETMANTPD imm8 ymm k ymm
|
|
// VGETMANTPD imm8 ymm ymm
|
|
// VGETMANTPD imm8 m512 k zmm
|
|
// VGETMANTPD imm8 m512 zmm
|
|
// VGETMANTPD imm8 zmm k zmm
|
|
// VGETMANTPD imm8 zmm zmm
|
|
func VGETMANTPD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGETMANTPD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VGETMANTPD_BCST: Extract Normalized Mantissas from Packed Double-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VGETMANTPD.BCST imm8 m64 k xmm
|
|
// VGETMANTPD.BCST imm8 m64 k ymm
|
|
// VGETMANTPD.BCST imm8 m64 xmm
|
|
// VGETMANTPD.BCST imm8 m64 ymm
|
|
// VGETMANTPD.BCST imm8 m64 k zmm
|
|
// VGETMANTPD.BCST imm8 m64 zmm
|
|
func VGETMANTPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGETMANTPD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VGETMANTPD_BCST_Z: Extract Normalized Mantissas from Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VGETMANTPD.BCST.Z imm8 m64 k xmm
|
|
// VGETMANTPD.BCST.Z imm8 m64 k ymm
|
|
// VGETMANTPD.BCST.Z imm8 m64 k zmm
|
|
func VGETMANTPD_BCST_Z(i, m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGETMANTPD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, k, xyz})
|
|
}
|
|
|
|
// VGETMANTPD_SAE: Extract Normalized Mantissas from Packed Double-Precision Floating-Point Values (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VGETMANTPD.SAE imm8 zmm k zmm
|
|
// VGETMANTPD.SAE imm8 zmm zmm
|
|
func VGETMANTPD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGETMANTPD.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VGETMANTPD_SAE_Z: Extract Normalized Mantissas from Packed Double-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VGETMANTPD.SAE.Z imm8 zmm k zmm
|
|
func VGETMANTPD_SAE_Z(i, z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGETMANTPD.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{i, z, k, z1})
|
|
}
|
|
|
|
// VGETMANTPD_Z: Extract Normalized Mantissas from Packed Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VGETMANTPD.Z imm8 m128 k xmm
|
|
// VGETMANTPD.Z imm8 m256 k ymm
|
|
// VGETMANTPD.Z imm8 xmm k xmm
|
|
// VGETMANTPD.Z imm8 ymm k ymm
|
|
// VGETMANTPD.Z imm8 m512 k zmm
|
|
// VGETMANTPD.Z imm8 zmm k zmm
|
|
func VGETMANTPD_Z(i, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGETMANTPD.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, k, xyz})
|
|
}
|
|
|
|
// VGETMANTPS: Extract Normalized Mantissas from Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VGETMANTPS imm8 m128 k xmm
|
|
// VGETMANTPS imm8 m128 xmm
|
|
// VGETMANTPS imm8 m256 k ymm
|
|
// VGETMANTPS imm8 m256 ymm
|
|
// VGETMANTPS imm8 xmm k xmm
|
|
// VGETMANTPS imm8 xmm xmm
|
|
// VGETMANTPS imm8 ymm k ymm
|
|
// VGETMANTPS imm8 ymm ymm
|
|
// VGETMANTPS imm8 m512 k zmm
|
|
// VGETMANTPS imm8 m512 zmm
|
|
// VGETMANTPS imm8 zmm k zmm
|
|
// VGETMANTPS imm8 zmm zmm
|
|
func VGETMANTPS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGETMANTPS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VGETMANTPS_BCST: Extract Normalized Mantissas from Packed Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VGETMANTPS.BCST imm8 m32 k xmm
|
|
// VGETMANTPS.BCST imm8 m32 k ymm
|
|
// VGETMANTPS.BCST imm8 m32 xmm
|
|
// VGETMANTPS.BCST imm8 m32 ymm
|
|
// VGETMANTPS.BCST imm8 m32 k zmm
|
|
// VGETMANTPS.BCST imm8 m32 zmm
|
|
func VGETMANTPS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGETMANTPS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VGETMANTPS_BCST_Z: Extract Normalized Mantissas from Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VGETMANTPS.BCST.Z imm8 m32 k xmm
|
|
// VGETMANTPS.BCST.Z imm8 m32 k ymm
|
|
// VGETMANTPS.BCST.Z imm8 m32 k zmm
|
|
func VGETMANTPS_BCST_Z(i, m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGETMANTPS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, k, xyz})
|
|
}
|
|
|
|
// VGETMANTPS_SAE: Extract Normalized Mantissas from Packed Single-Precision Floating-Point Values (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VGETMANTPS.SAE imm8 zmm k zmm
|
|
// VGETMANTPS.SAE imm8 zmm zmm
|
|
func VGETMANTPS_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGETMANTPS.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VGETMANTPS_SAE_Z: Extract Normalized Mantissas from Packed Single-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VGETMANTPS.SAE.Z imm8 zmm k zmm
|
|
func VGETMANTPS_SAE_Z(i, z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGETMANTPS.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{i, z, k, z1})
|
|
}
|
|
|
|
// VGETMANTPS_Z: Extract Normalized Mantissas from Packed Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VGETMANTPS.Z imm8 m128 k xmm
|
|
// VGETMANTPS.Z imm8 m256 k ymm
|
|
// VGETMANTPS.Z imm8 xmm k xmm
|
|
// VGETMANTPS.Z imm8 ymm k ymm
|
|
// VGETMANTPS.Z imm8 m512 k zmm
|
|
// VGETMANTPS.Z imm8 zmm k zmm
|
|
func VGETMANTPS_Z(i, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGETMANTPS.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, k, xyz})
|
|
}
|
|
|
|
// VGETMANTSD: Extract Normalized Mantissa from Scalar Double-Precision Floating-Point Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VGETMANTSD imm8 m64 xmm k xmm
|
|
// VGETMANTSD imm8 m64 xmm xmm
|
|
// VGETMANTSD imm8 xmm xmm k xmm
|
|
// VGETMANTSD imm8 xmm xmm xmm
|
|
func VGETMANTSD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGETMANTSD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VGETMANTSD_SAE: Extract Normalized Mantissa from Scalar Double-Precision Floating-Point Value (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VGETMANTSD.SAE imm8 xmm xmm k xmm
|
|
// VGETMANTSD.SAE imm8 xmm xmm xmm
|
|
func VGETMANTSD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGETMANTSD.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VGETMANTSD_SAE_Z: Extract Normalized Mantissa from Scalar Double-Precision Floating-Point Value (Suppress All Exceptions, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VGETMANTSD.SAE.Z imm8 xmm xmm k xmm
|
|
func VGETMANTSD_SAE_Z(i, x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGETMANTSD.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{i, x, x1, k, x2})
|
|
}
|
|
|
|
// VGETMANTSD_Z: Extract Normalized Mantissa from Scalar Double-Precision Floating-Point Value (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VGETMANTSD.Z imm8 m64 xmm k xmm
|
|
// VGETMANTSD.Z imm8 xmm xmm k xmm
|
|
func VGETMANTSD_Z(i, mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGETMANTSD.Forms(), sffxs{sffxZ}, []operand.Op{i, mx, x, k, x1})
|
|
}
|
|
|
|
// VGETMANTSS: Extract Normalized Mantissa from Scalar Single-Precision Floating-Point Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VGETMANTSS imm8 m32 xmm k xmm
|
|
// VGETMANTSS imm8 m32 xmm xmm
|
|
// VGETMANTSS imm8 xmm xmm k xmm
|
|
// VGETMANTSS imm8 xmm xmm xmm
|
|
func VGETMANTSS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGETMANTSS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VGETMANTSS_SAE: Extract Normalized Mantissa from Scalar Single-Precision Floating-Point Value (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VGETMANTSS.SAE imm8 xmm xmm k xmm
|
|
// VGETMANTSS.SAE imm8 xmm xmm xmm
|
|
func VGETMANTSS_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGETMANTSS.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VGETMANTSS_SAE_Z: Extract Normalized Mantissa from Scalar Single-Precision Floating-Point Value (Suppress All Exceptions, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VGETMANTSS.SAE.Z imm8 xmm xmm k xmm
|
|
func VGETMANTSS_SAE_Z(i, x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGETMANTSS.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{i, x, x1, k, x2})
|
|
}
|
|
|
|
// VGETMANTSS_Z: Extract Normalized Mantissa from Scalar Single-Precision Floating-Point Value (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VGETMANTSS.Z imm8 m32 xmm k xmm
|
|
// VGETMANTSS.Z imm8 xmm xmm k xmm
|
|
func VGETMANTSS_Z(i, mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGETMANTSS.Forms(), sffxs{sffxZ}, []operand.Op{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
|
|
func VGF2P8AFFINEINVQB(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGF2P8AFFINEINVQB.Forms(), sffxs{}, 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
|
|
func VGF2P8AFFINEINVQB_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGF2P8AFFINEINVQB.Forms(), sffxs{sffxBCST}, 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
|
|
func VGF2P8AFFINEINVQB_BCST_Z(i, m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGF2P8AFFINEINVQB.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{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
|
|
func VGF2P8AFFINEINVQB_Z(i, mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGF2P8AFFINEINVQB.Forms(), sffxs{sffxZ}, []operand.Op{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
|
|
func VGF2P8AFFINEQB(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGF2P8AFFINEQB.Forms(), sffxs{}, 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
|
|
func VGF2P8AFFINEQB_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGF2P8AFFINEQB.Forms(), sffxs{sffxBCST}, 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
|
|
func VGF2P8AFFINEQB_BCST_Z(i, m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGF2P8AFFINEQB.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{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
|
|
func VGF2P8AFFINEQB_Z(i, mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGF2P8AFFINEQB.Forms(), sffxs{sffxZ}, []operand.Op{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
|
|
func VGF2P8MULB(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGF2P8MULB.Forms(), sffxs{}, 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
|
|
func VGF2P8MULB_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVGF2P8MULB.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VHADDPD: Packed Double-FP Horizontal Add.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VHADDPD m128 xmm xmm
|
|
// VHADDPD m256 ymm ymm
|
|
// VHADDPD xmm xmm xmm
|
|
// VHADDPD ymm ymm ymm
|
|
func VHADDPD(mxy, xy, xy1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVHADDPD.Forms(), sffxs{}, []operand.Op{mxy, xy, xy1})
|
|
}
|
|
|
|
// VHADDPS: Packed Single-FP Horizontal Add.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VHADDPS m128 xmm xmm
|
|
// VHADDPS m256 ymm ymm
|
|
// VHADDPS xmm xmm xmm
|
|
// VHADDPS ymm ymm ymm
|
|
func VHADDPS(mxy, xy, xy1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVHADDPS.Forms(), sffxs{}, []operand.Op{mxy, xy, xy1})
|
|
}
|
|
|
|
// VHSUBPD: Packed Double-FP Horizontal Subtract.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VHSUBPD m128 xmm xmm
|
|
// VHSUBPD m256 ymm ymm
|
|
// VHSUBPD xmm xmm xmm
|
|
// VHSUBPD ymm ymm ymm
|
|
func VHSUBPD(mxy, xy, xy1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVHSUBPD.Forms(), sffxs{}, []operand.Op{mxy, xy, xy1})
|
|
}
|
|
|
|
// VHSUBPS: Packed Single-FP Horizontal Subtract.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VHSUBPS m128 xmm xmm
|
|
// VHSUBPS m256 ymm ymm
|
|
// VHSUBPS xmm xmm xmm
|
|
// VHSUBPS ymm ymm ymm
|
|
func VHSUBPS(mxy, xy, xy1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVHSUBPS.Forms(), sffxs{}, []operand.Op{mxy, xy, xy1})
|
|
}
|
|
|
|
// VINSERTF128: Insert Packed Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VINSERTF128 imm8 m128 ymm ymm
|
|
// VINSERTF128 imm8 xmm ymm ymm
|
|
func VINSERTF128(i, mx, y, y1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVINSERTF128.Forms(), sffxs{}, []operand.Op{i, mx, y, y1})
|
|
}
|
|
|
|
// VINSERTF32X4: Insert 128 Bits of Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VINSERTF32X4 imm8 m128 ymm k ymm
|
|
// VINSERTF32X4 imm8 m128 ymm ymm
|
|
// VINSERTF32X4 imm8 xmm ymm k ymm
|
|
// VINSERTF32X4 imm8 xmm ymm ymm
|
|
// VINSERTF32X4 imm8 m128 zmm k zmm
|
|
// VINSERTF32X4 imm8 m128 zmm zmm
|
|
// VINSERTF32X4 imm8 xmm zmm k zmm
|
|
// VINSERTF32X4 imm8 xmm zmm zmm
|
|
func VINSERTF32X4(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVINSERTF32X4.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VINSERTF32X4_Z: Insert 128 Bits of Packed Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VINSERTF32X4.Z imm8 m128 ymm k ymm
|
|
// VINSERTF32X4.Z imm8 xmm ymm k ymm
|
|
// VINSERTF32X4.Z imm8 m128 zmm k zmm
|
|
// VINSERTF32X4.Z imm8 xmm zmm k zmm
|
|
func VINSERTF32X4_Z(i, mx, yz, k, yz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVINSERTF32X4.Forms(), sffxs{sffxZ}, []operand.Op{i, mx, yz, k, yz1})
|
|
}
|
|
|
|
// VINSERTF32X8: Insert 256 Bits of Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VINSERTF32X8 imm8 m256 zmm k zmm
|
|
// VINSERTF32X8 imm8 m256 zmm zmm
|
|
// VINSERTF32X8 imm8 ymm zmm k zmm
|
|
// VINSERTF32X8 imm8 ymm zmm zmm
|
|
func VINSERTF32X8(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVINSERTF32X8.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VINSERTF32X8_Z: Insert 256 Bits of Packed Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VINSERTF32X8.Z imm8 m256 zmm k zmm
|
|
// VINSERTF32X8.Z imm8 ymm zmm k zmm
|
|
func VINSERTF32X8_Z(i, my, z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVINSERTF32X8.Forms(), sffxs{sffxZ}, []operand.Op{i, my, z, k, z1})
|
|
}
|
|
|
|
// VINSERTF64X2: Insert 128 Bits of Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VINSERTF64X2 imm8 m128 ymm k ymm
|
|
// VINSERTF64X2 imm8 m128 ymm ymm
|
|
// VINSERTF64X2 imm8 xmm ymm k ymm
|
|
// VINSERTF64X2 imm8 xmm ymm ymm
|
|
// VINSERTF64X2 imm8 m128 zmm k zmm
|
|
// VINSERTF64X2 imm8 m128 zmm zmm
|
|
// VINSERTF64X2 imm8 xmm zmm k zmm
|
|
// VINSERTF64X2 imm8 xmm zmm zmm
|
|
func VINSERTF64X2(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVINSERTF64X2.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VINSERTF64X2_Z: Insert 128 Bits of Packed Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VINSERTF64X2.Z imm8 m128 ymm k ymm
|
|
// VINSERTF64X2.Z imm8 xmm ymm k ymm
|
|
// VINSERTF64X2.Z imm8 m128 zmm k zmm
|
|
// VINSERTF64X2.Z imm8 xmm zmm k zmm
|
|
func VINSERTF64X2_Z(i, mx, yz, k, yz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVINSERTF64X2.Forms(), sffxs{sffxZ}, []operand.Op{i, mx, yz, k, yz1})
|
|
}
|
|
|
|
// VINSERTF64X4: Insert 256 Bits of Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VINSERTF64X4 imm8 m256 zmm k zmm
|
|
// VINSERTF64X4 imm8 m256 zmm zmm
|
|
// VINSERTF64X4 imm8 ymm zmm k zmm
|
|
// VINSERTF64X4 imm8 ymm zmm zmm
|
|
func VINSERTF64X4(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVINSERTF64X4.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VINSERTF64X4_Z: Insert 256 Bits of Packed Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VINSERTF64X4.Z imm8 m256 zmm k zmm
|
|
// VINSERTF64X4.Z imm8 ymm zmm k zmm
|
|
func VINSERTF64X4_Z(i, my, z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVINSERTF64X4.Forms(), sffxs{sffxZ}, []operand.Op{i, my, z, k, z1})
|
|
}
|
|
|
|
// VINSERTI128: Insert Packed Integer Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VINSERTI128 imm8 m128 ymm ymm
|
|
// VINSERTI128 imm8 xmm ymm ymm
|
|
func VINSERTI128(i, mx, y, y1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVINSERTI128.Forms(), sffxs{}, []operand.Op{i, mx, y, y1})
|
|
}
|
|
|
|
// VINSERTI32X4: Insert 128 Bits of Packed Doubleword Integer Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VINSERTI32X4 imm8 m128 ymm k ymm
|
|
// VINSERTI32X4 imm8 m128 ymm ymm
|
|
// VINSERTI32X4 imm8 xmm ymm k ymm
|
|
// VINSERTI32X4 imm8 xmm ymm ymm
|
|
// VINSERTI32X4 imm8 m128 zmm k zmm
|
|
// VINSERTI32X4 imm8 m128 zmm zmm
|
|
// VINSERTI32X4 imm8 xmm zmm k zmm
|
|
// VINSERTI32X4 imm8 xmm zmm zmm
|
|
func VINSERTI32X4(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVINSERTI32X4.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VINSERTI32X4_Z: Insert 128 Bits of Packed Doubleword Integer Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VINSERTI32X4.Z imm8 m128 ymm k ymm
|
|
// VINSERTI32X4.Z imm8 xmm ymm k ymm
|
|
// VINSERTI32X4.Z imm8 m128 zmm k zmm
|
|
// VINSERTI32X4.Z imm8 xmm zmm k zmm
|
|
func VINSERTI32X4_Z(i, mx, yz, k, yz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVINSERTI32X4.Forms(), sffxs{sffxZ}, []operand.Op{i, mx, yz, k, yz1})
|
|
}
|
|
|
|
// VINSERTI32X8: Insert 256 Bits of Packed Doubleword Integer Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VINSERTI32X8 imm8 m256 zmm k zmm
|
|
// VINSERTI32X8 imm8 m256 zmm zmm
|
|
// VINSERTI32X8 imm8 ymm zmm k zmm
|
|
// VINSERTI32X8 imm8 ymm zmm zmm
|
|
func VINSERTI32X8(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVINSERTI32X8.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VINSERTI32X8_Z: Insert 256 Bits of Packed Doubleword Integer Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VINSERTI32X8.Z imm8 m256 zmm k zmm
|
|
// VINSERTI32X8.Z imm8 ymm zmm k zmm
|
|
func VINSERTI32X8_Z(i, my, z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVINSERTI32X8.Forms(), sffxs{sffxZ}, []operand.Op{i, my, z, k, z1})
|
|
}
|
|
|
|
// VINSERTI64X2: Insert 128 Bits of Packed Quadword Integer Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VINSERTI64X2 imm8 m128 ymm k ymm
|
|
// VINSERTI64X2 imm8 m128 ymm ymm
|
|
// VINSERTI64X2 imm8 xmm ymm k ymm
|
|
// VINSERTI64X2 imm8 xmm ymm ymm
|
|
// VINSERTI64X2 imm8 m128 zmm k zmm
|
|
// VINSERTI64X2 imm8 m128 zmm zmm
|
|
// VINSERTI64X2 imm8 xmm zmm k zmm
|
|
// VINSERTI64X2 imm8 xmm zmm zmm
|
|
func VINSERTI64X2(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVINSERTI64X2.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VINSERTI64X2_Z: Insert 128 Bits of Packed Quadword Integer Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VINSERTI64X2.Z imm8 m128 ymm k ymm
|
|
// VINSERTI64X2.Z imm8 xmm ymm k ymm
|
|
// VINSERTI64X2.Z imm8 m128 zmm k zmm
|
|
// VINSERTI64X2.Z imm8 xmm zmm k zmm
|
|
func VINSERTI64X2_Z(i, mx, yz, k, yz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVINSERTI64X2.Forms(), sffxs{sffxZ}, []operand.Op{i, mx, yz, k, yz1})
|
|
}
|
|
|
|
// VINSERTI64X4: Insert 256 Bits of Packed Quadword Integer Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VINSERTI64X4 imm8 m256 zmm k zmm
|
|
// VINSERTI64X4 imm8 m256 zmm zmm
|
|
// VINSERTI64X4 imm8 ymm zmm k zmm
|
|
// VINSERTI64X4 imm8 ymm zmm zmm
|
|
func VINSERTI64X4(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVINSERTI64X4.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VINSERTI64X4_Z: Insert 256 Bits of Packed Quadword Integer Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VINSERTI64X4.Z imm8 m256 zmm k zmm
|
|
// VINSERTI64X4.Z imm8 ymm zmm k zmm
|
|
func VINSERTI64X4_Z(i, my, z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVINSERTI64X4.Forms(), sffxs{sffxZ}, []operand.Op{i, my, z, k, z1})
|
|
}
|
|
|
|
// VINSERTPS: Insert Packed Single Precision Floating-Point Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VINSERTPS imm8 m32 xmm xmm
|
|
// VINSERTPS imm8 xmm xmm xmm
|
|
func VINSERTPS(i, mx, x, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVINSERTPS.Forms(), sffxs{}, []operand.Op{i, mx, x, x1})
|
|
}
|
|
|
|
// VLDDQU: Load Unaligned Integer 128 Bits.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VLDDQU m128 xmm
|
|
// VLDDQU m256 ymm
|
|
func VLDDQU(m, xy operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVLDDQU.Forms(), sffxs{}, []operand.Op{m, xy})
|
|
}
|
|
|
|
// VLDMXCSR: Load MXCSR Register.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VLDMXCSR m32
|
|
func VLDMXCSR(m operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVLDMXCSR.Forms(), sffxs{}, []operand.Op{m})
|
|
}
|
|
|
|
// VMASKMOVDQU: Store Selected Bytes of Double Quadword.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMASKMOVDQU xmm xmm
|
|
func VMASKMOVDQU(x, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMASKMOVDQU.Forms(), sffxs{}, []operand.Op{x, x1})
|
|
}
|
|
|
|
// VMASKMOVPD: Conditional Move Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMASKMOVPD m128 xmm xmm
|
|
// VMASKMOVPD m256 ymm ymm
|
|
// VMASKMOVPD xmm xmm m128
|
|
// VMASKMOVPD ymm ymm m256
|
|
func VMASKMOVPD(mxy, xy, mxy1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMASKMOVPD.Forms(), sffxs{}, []operand.Op{mxy, xy, mxy1})
|
|
}
|
|
|
|
// VMASKMOVPS: Conditional Move Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMASKMOVPS m128 xmm xmm
|
|
// VMASKMOVPS m256 ymm ymm
|
|
// VMASKMOVPS xmm xmm m128
|
|
// VMASKMOVPS ymm ymm m256
|
|
func VMASKMOVPS(mxy, xy, mxy1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMASKMOVPS.Forms(), sffxs{}, []operand.Op{mxy, xy, mxy1})
|
|
}
|
|
|
|
// VMAXPD: Return Maximum Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMAXPD m128 xmm xmm
|
|
// VMAXPD m256 ymm ymm
|
|
// VMAXPD xmm xmm xmm
|
|
// VMAXPD ymm ymm ymm
|
|
// VMAXPD m128 xmm k xmm
|
|
// VMAXPD m256 ymm k ymm
|
|
// VMAXPD xmm xmm k xmm
|
|
// VMAXPD ymm ymm k ymm
|
|
// VMAXPD m512 zmm k zmm
|
|
// VMAXPD m512 zmm zmm
|
|
// VMAXPD zmm zmm k zmm
|
|
// VMAXPD zmm zmm zmm
|
|
func VMAXPD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMAXPD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VMAXPD_BCST: Return Maximum Packed Double-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMAXPD.BCST m64 xmm k xmm
|
|
// VMAXPD.BCST m64 xmm xmm
|
|
// VMAXPD.BCST m64 ymm k ymm
|
|
// VMAXPD.BCST m64 ymm ymm
|
|
// VMAXPD.BCST m64 zmm k zmm
|
|
// VMAXPD.BCST m64 zmm zmm
|
|
func VMAXPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMAXPD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VMAXPD_BCST_Z: Return Maximum Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMAXPD.BCST.Z m64 xmm k xmm
|
|
// VMAXPD.BCST.Z m64 ymm k ymm
|
|
// VMAXPD.BCST.Z m64 zmm k zmm
|
|
func VMAXPD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMAXPD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VMAXPD_SAE: Return Maximum Packed Double-Precision Floating-Point Values (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMAXPD.SAE zmm zmm k zmm
|
|
// VMAXPD.SAE zmm zmm zmm
|
|
func VMAXPD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMAXPD.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VMAXPD_SAE_Z: Return Maximum Packed Double-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMAXPD.SAE.Z zmm zmm k zmm
|
|
func VMAXPD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMAXPD.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VMAXPD_Z: Return Maximum Packed Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMAXPD.Z m128 xmm k xmm
|
|
// VMAXPD.Z m256 ymm k ymm
|
|
// VMAXPD.Z xmm xmm k xmm
|
|
// VMAXPD.Z ymm ymm k ymm
|
|
// VMAXPD.Z m512 zmm k zmm
|
|
// VMAXPD.Z zmm zmm k zmm
|
|
func VMAXPD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMAXPD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VMAXPS: Return Maximum Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMAXPS m128 xmm xmm
|
|
// VMAXPS m256 ymm ymm
|
|
// VMAXPS xmm xmm xmm
|
|
// VMAXPS ymm ymm ymm
|
|
// VMAXPS m128 xmm k xmm
|
|
// VMAXPS m256 ymm k ymm
|
|
// VMAXPS xmm xmm k xmm
|
|
// VMAXPS ymm ymm k ymm
|
|
// VMAXPS m512 zmm k zmm
|
|
// VMAXPS m512 zmm zmm
|
|
// VMAXPS zmm zmm k zmm
|
|
// VMAXPS zmm zmm zmm
|
|
func VMAXPS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMAXPS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VMAXPS_BCST: Return Maximum Packed Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMAXPS.BCST m32 xmm k xmm
|
|
// VMAXPS.BCST m32 xmm xmm
|
|
// VMAXPS.BCST m32 ymm k ymm
|
|
// VMAXPS.BCST m32 ymm ymm
|
|
// VMAXPS.BCST m32 zmm k zmm
|
|
// VMAXPS.BCST m32 zmm zmm
|
|
func VMAXPS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMAXPS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VMAXPS_BCST_Z: Return Maximum Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMAXPS.BCST.Z m32 xmm k xmm
|
|
// VMAXPS.BCST.Z m32 ymm k ymm
|
|
// VMAXPS.BCST.Z m32 zmm k zmm
|
|
func VMAXPS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMAXPS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VMAXPS_SAE: Return Maximum Packed Single-Precision Floating-Point Values (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMAXPS.SAE zmm zmm k zmm
|
|
// VMAXPS.SAE zmm zmm zmm
|
|
func VMAXPS_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMAXPS.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VMAXPS_SAE_Z: Return Maximum Packed Single-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMAXPS.SAE.Z zmm zmm k zmm
|
|
func VMAXPS_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMAXPS.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VMAXPS_Z: Return Maximum Packed Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMAXPS.Z m128 xmm k xmm
|
|
// VMAXPS.Z m256 ymm k ymm
|
|
// VMAXPS.Z xmm xmm k xmm
|
|
// VMAXPS.Z ymm ymm k ymm
|
|
// VMAXPS.Z m512 zmm k zmm
|
|
// VMAXPS.Z zmm zmm k zmm
|
|
func VMAXPS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMAXPS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VMAXSD: Return Maximum Scalar Double-Precision Floating-Point Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMAXSD m64 xmm xmm
|
|
// VMAXSD xmm xmm xmm
|
|
// VMAXSD m64 xmm k xmm
|
|
// VMAXSD xmm xmm k xmm
|
|
func VMAXSD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMAXSD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VMAXSD_SAE: Return Maximum Scalar Double-Precision Floating-Point Value (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMAXSD.SAE xmm xmm k xmm
|
|
// VMAXSD.SAE xmm xmm xmm
|
|
func VMAXSD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMAXSD.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VMAXSD_SAE_Z: Return Maximum Scalar Double-Precision Floating-Point Value (Suppress All Exceptions, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMAXSD.SAE.Z xmm xmm k xmm
|
|
func VMAXSD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMAXSD.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VMAXSD_Z: Return Maximum Scalar Double-Precision Floating-Point Value (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMAXSD.Z m64 xmm k xmm
|
|
// VMAXSD.Z xmm xmm k xmm
|
|
func VMAXSD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMAXSD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VMAXSS: Return Maximum Scalar Single-Precision Floating-Point Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMAXSS m32 xmm xmm
|
|
// VMAXSS xmm xmm xmm
|
|
// VMAXSS m32 xmm k xmm
|
|
// VMAXSS xmm xmm k xmm
|
|
func VMAXSS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMAXSS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VMAXSS_SAE: Return Maximum Scalar Single-Precision Floating-Point Value (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMAXSS.SAE xmm xmm k xmm
|
|
// VMAXSS.SAE xmm xmm xmm
|
|
func VMAXSS_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMAXSS.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VMAXSS_SAE_Z: Return Maximum Scalar Single-Precision Floating-Point Value (Suppress All Exceptions, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMAXSS.SAE.Z xmm xmm k xmm
|
|
func VMAXSS_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMAXSS.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VMAXSS_Z: Return Maximum Scalar Single-Precision Floating-Point Value (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMAXSS.Z m32 xmm k xmm
|
|
// VMAXSS.Z xmm xmm k xmm
|
|
func VMAXSS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMAXSS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VMINPD: Return Minimum Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMINPD m128 xmm xmm
|
|
// VMINPD m256 ymm ymm
|
|
// VMINPD xmm xmm xmm
|
|
// VMINPD ymm ymm ymm
|
|
// VMINPD m128 xmm k xmm
|
|
// VMINPD m256 ymm k ymm
|
|
// VMINPD xmm xmm k xmm
|
|
// VMINPD ymm ymm k ymm
|
|
// VMINPD m512 zmm k zmm
|
|
// VMINPD m512 zmm zmm
|
|
// VMINPD zmm zmm k zmm
|
|
// VMINPD zmm zmm zmm
|
|
func VMINPD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMINPD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VMINPD_BCST: Return Minimum Packed Double-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMINPD.BCST m64 xmm k xmm
|
|
// VMINPD.BCST m64 xmm xmm
|
|
// VMINPD.BCST m64 ymm k ymm
|
|
// VMINPD.BCST m64 ymm ymm
|
|
// VMINPD.BCST m64 zmm k zmm
|
|
// VMINPD.BCST m64 zmm zmm
|
|
func VMINPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMINPD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VMINPD_BCST_Z: Return Minimum Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMINPD.BCST.Z m64 xmm k xmm
|
|
// VMINPD.BCST.Z m64 ymm k ymm
|
|
// VMINPD.BCST.Z m64 zmm k zmm
|
|
func VMINPD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMINPD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VMINPD_SAE: Return Minimum Packed Double-Precision Floating-Point Values (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMINPD.SAE zmm zmm k zmm
|
|
// VMINPD.SAE zmm zmm zmm
|
|
func VMINPD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMINPD.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VMINPD_SAE_Z: Return Minimum Packed Double-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMINPD.SAE.Z zmm zmm k zmm
|
|
func VMINPD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMINPD.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VMINPD_Z: Return Minimum Packed Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMINPD.Z m128 xmm k xmm
|
|
// VMINPD.Z m256 ymm k ymm
|
|
// VMINPD.Z xmm xmm k xmm
|
|
// VMINPD.Z ymm ymm k ymm
|
|
// VMINPD.Z m512 zmm k zmm
|
|
// VMINPD.Z zmm zmm k zmm
|
|
func VMINPD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMINPD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VMINPS: Return Minimum Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMINPS m128 xmm xmm
|
|
// VMINPS m256 ymm ymm
|
|
// VMINPS xmm xmm xmm
|
|
// VMINPS ymm ymm ymm
|
|
// VMINPS m128 xmm k xmm
|
|
// VMINPS m256 ymm k ymm
|
|
// VMINPS xmm xmm k xmm
|
|
// VMINPS ymm ymm k ymm
|
|
// VMINPS m512 zmm k zmm
|
|
// VMINPS m512 zmm zmm
|
|
// VMINPS zmm zmm k zmm
|
|
// VMINPS zmm zmm zmm
|
|
func VMINPS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMINPS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VMINPS_BCST: Return Minimum Packed Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMINPS.BCST m32 xmm k xmm
|
|
// VMINPS.BCST m32 xmm xmm
|
|
// VMINPS.BCST m32 ymm k ymm
|
|
// VMINPS.BCST m32 ymm ymm
|
|
// VMINPS.BCST m32 zmm k zmm
|
|
// VMINPS.BCST m32 zmm zmm
|
|
func VMINPS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMINPS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VMINPS_BCST_Z: Return Minimum Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMINPS.BCST.Z m32 xmm k xmm
|
|
// VMINPS.BCST.Z m32 ymm k ymm
|
|
// VMINPS.BCST.Z m32 zmm k zmm
|
|
func VMINPS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMINPS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VMINPS_SAE: Return Minimum Packed Single-Precision Floating-Point Values (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMINPS.SAE zmm zmm k zmm
|
|
// VMINPS.SAE zmm zmm zmm
|
|
func VMINPS_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMINPS.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VMINPS_SAE_Z: Return Minimum Packed Single-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMINPS.SAE.Z zmm zmm k zmm
|
|
func VMINPS_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMINPS.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VMINPS_Z: Return Minimum Packed Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMINPS.Z m128 xmm k xmm
|
|
// VMINPS.Z m256 ymm k ymm
|
|
// VMINPS.Z xmm xmm k xmm
|
|
// VMINPS.Z ymm ymm k ymm
|
|
// VMINPS.Z m512 zmm k zmm
|
|
// VMINPS.Z zmm zmm k zmm
|
|
func VMINPS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMINPS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VMINSD: Return Minimum Scalar Double-Precision Floating-Point Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMINSD m64 xmm xmm
|
|
// VMINSD xmm xmm xmm
|
|
// VMINSD m64 xmm k xmm
|
|
// VMINSD xmm xmm k xmm
|
|
func VMINSD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMINSD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VMINSD_SAE: Return Minimum Scalar Double-Precision Floating-Point Value (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMINSD.SAE xmm xmm k xmm
|
|
// VMINSD.SAE xmm xmm xmm
|
|
func VMINSD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMINSD.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VMINSD_SAE_Z: Return Minimum Scalar Double-Precision Floating-Point Value (Suppress All Exceptions, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMINSD.SAE.Z xmm xmm k xmm
|
|
func VMINSD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMINSD.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VMINSD_Z: Return Minimum Scalar Double-Precision Floating-Point Value (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMINSD.Z m64 xmm k xmm
|
|
// VMINSD.Z xmm xmm k xmm
|
|
func VMINSD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMINSD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VMINSS: Return Minimum Scalar Single-Precision Floating-Point Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMINSS m32 xmm xmm
|
|
// VMINSS xmm xmm xmm
|
|
// VMINSS m32 xmm k xmm
|
|
// VMINSS xmm xmm k xmm
|
|
func VMINSS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMINSS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VMINSS_SAE: Return Minimum Scalar Single-Precision Floating-Point Value (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMINSS.SAE xmm xmm k xmm
|
|
// VMINSS.SAE xmm xmm xmm
|
|
func VMINSS_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMINSS.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VMINSS_SAE_Z: Return Minimum Scalar Single-Precision Floating-Point Value (Suppress All Exceptions, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMINSS.SAE.Z xmm xmm k xmm
|
|
func VMINSS_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMINSS.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VMINSS_Z: Return Minimum Scalar Single-Precision Floating-Point Value (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMINSS.Z m32 xmm k xmm
|
|
// VMINSS.Z xmm xmm k xmm
|
|
func VMINSS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMINSS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VMOVAPD: Move Aligned Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMOVAPD m128 xmm
|
|
// VMOVAPD m256 ymm
|
|
// VMOVAPD xmm m128
|
|
// VMOVAPD xmm xmm
|
|
// VMOVAPD ymm m256
|
|
// VMOVAPD ymm ymm
|
|
// VMOVAPD m128 k xmm
|
|
// VMOVAPD m256 k ymm
|
|
// VMOVAPD xmm k m128
|
|
// VMOVAPD xmm k xmm
|
|
// VMOVAPD ymm k m256
|
|
// VMOVAPD ymm k ymm
|
|
// VMOVAPD m512 k zmm
|
|
// VMOVAPD m512 zmm
|
|
// VMOVAPD zmm k m512
|
|
// VMOVAPD zmm k zmm
|
|
// VMOVAPD zmm m512
|
|
// VMOVAPD zmm zmm
|
|
func VMOVAPD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMOVAPD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VMOVAPD_Z: Move Aligned Packed Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMOVAPD.Z m128 k xmm
|
|
// VMOVAPD.Z m256 k ymm
|
|
// VMOVAPD.Z xmm k m128
|
|
// VMOVAPD.Z xmm k xmm
|
|
// VMOVAPD.Z ymm k m256
|
|
// VMOVAPD.Z ymm k ymm
|
|
// VMOVAPD.Z m512 k zmm
|
|
// VMOVAPD.Z zmm k m512
|
|
// VMOVAPD.Z zmm k zmm
|
|
func VMOVAPD_Z(mxyz, k, mxyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMOVAPD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, mxyz1})
|
|
}
|
|
|
|
// VMOVAPS: Move Aligned Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMOVAPS m128 xmm
|
|
// VMOVAPS m256 ymm
|
|
// VMOVAPS xmm m128
|
|
// VMOVAPS xmm xmm
|
|
// VMOVAPS ymm m256
|
|
// VMOVAPS ymm ymm
|
|
// VMOVAPS m128 k xmm
|
|
// VMOVAPS m256 k ymm
|
|
// VMOVAPS xmm k m128
|
|
// VMOVAPS xmm k xmm
|
|
// VMOVAPS ymm k m256
|
|
// VMOVAPS ymm k ymm
|
|
// VMOVAPS m512 k zmm
|
|
// VMOVAPS m512 zmm
|
|
// VMOVAPS zmm k m512
|
|
// VMOVAPS zmm k zmm
|
|
// VMOVAPS zmm m512
|
|
// VMOVAPS zmm zmm
|
|
func VMOVAPS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMOVAPS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VMOVAPS_Z: Move Aligned Packed Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMOVAPS.Z m128 k xmm
|
|
// VMOVAPS.Z m256 k ymm
|
|
// VMOVAPS.Z xmm k m128
|
|
// VMOVAPS.Z xmm k xmm
|
|
// VMOVAPS.Z ymm k m256
|
|
// VMOVAPS.Z ymm k ymm
|
|
// VMOVAPS.Z m512 k zmm
|
|
// VMOVAPS.Z zmm k m512
|
|
// VMOVAPS.Z zmm k zmm
|
|
func VMOVAPS_Z(mxyz, k, mxyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMOVAPS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, mxyz1})
|
|
}
|
|
|
|
// VMOVD: Move Doubleword.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMOVD m32 xmm
|
|
// VMOVD r32 xmm
|
|
// VMOVD xmm m32
|
|
// VMOVD xmm r32
|
|
func VMOVD(mrx, mrx1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMOVD.Forms(), sffxs{}, []operand.Op{mrx, mrx1})
|
|
}
|
|
|
|
// VMOVDDUP: Move One Double-FP and Duplicate.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMOVDDUP m256 ymm
|
|
// VMOVDDUP m64 xmm
|
|
// VMOVDDUP xmm xmm
|
|
// VMOVDDUP ymm ymm
|
|
// VMOVDDUP m256 k ymm
|
|
// VMOVDDUP m64 k xmm
|
|
// VMOVDDUP xmm k xmm
|
|
// VMOVDDUP ymm k ymm
|
|
// VMOVDDUP m512 k zmm
|
|
// VMOVDDUP m512 zmm
|
|
// VMOVDDUP zmm k zmm
|
|
// VMOVDDUP zmm zmm
|
|
func VMOVDDUP(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMOVDDUP.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VMOVDDUP_Z: Move One Double-FP and Duplicate (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMOVDDUP.Z m256 k ymm
|
|
// VMOVDDUP.Z m64 k xmm
|
|
// VMOVDDUP.Z xmm k xmm
|
|
// VMOVDDUP.Z ymm k ymm
|
|
// VMOVDDUP.Z m512 k zmm
|
|
// VMOVDDUP.Z zmm k zmm
|
|
func VMOVDDUP_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMOVDDUP.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz})
|
|
}
|
|
|
|
// VMOVDQA: Move Aligned Double Quadword.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMOVDQA m128 xmm
|
|
// VMOVDQA m256 ymm
|
|
// VMOVDQA xmm m128
|
|
// VMOVDQA xmm xmm
|
|
// VMOVDQA ymm m256
|
|
// VMOVDQA ymm ymm
|
|
func VMOVDQA(mxy, mxy1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMOVDQA.Forms(), sffxs{}, []operand.Op{mxy, mxy1})
|
|
}
|
|
|
|
// VMOVDQA32: Move Aligned Doubleword Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMOVDQA32 m128 k xmm
|
|
// VMOVDQA32 m128 xmm
|
|
// VMOVDQA32 m256 k ymm
|
|
// VMOVDQA32 m256 ymm
|
|
// VMOVDQA32 xmm k m128
|
|
// VMOVDQA32 xmm k xmm
|
|
// VMOVDQA32 xmm m128
|
|
// VMOVDQA32 xmm xmm
|
|
// VMOVDQA32 ymm k m256
|
|
// VMOVDQA32 ymm k ymm
|
|
// VMOVDQA32 ymm m256
|
|
// VMOVDQA32 ymm ymm
|
|
// VMOVDQA32 m512 k zmm
|
|
// VMOVDQA32 m512 zmm
|
|
// VMOVDQA32 zmm k m512
|
|
// VMOVDQA32 zmm k zmm
|
|
// VMOVDQA32 zmm m512
|
|
// VMOVDQA32 zmm zmm
|
|
func VMOVDQA32(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMOVDQA32.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VMOVDQA32_Z: Move Aligned Doubleword Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMOVDQA32.Z m128 k xmm
|
|
// VMOVDQA32.Z m256 k ymm
|
|
// VMOVDQA32.Z xmm k m128
|
|
// VMOVDQA32.Z xmm k xmm
|
|
// VMOVDQA32.Z ymm k m256
|
|
// VMOVDQA32.Z ymm k ymm
|
|
// VMOVDQA32.Z m512 k zmm
|
|
// VMOVDQA32.Z zmm k m512
|
|
// VMOVDQA32.Z zmm k zmm
|
|
func VMOVDQA32_Z(mxyz, k, mxyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMOVDQA32.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, mxyz1})
|
|
}
|
|
|
|
// VMOVDQA64: Move Aligned Quadword Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMOVDQA64 m128 k xmm
|
|
// VMOVDQA64 m128 xmm
|
|
// VMOVDQA64 m256 k ymm
|
|
// VMOVDQA64 m256 ymm
|
|
// VMOVDQA64 xmm k m128
|
|
// VMOVDQA64 xmm k xmm
|
|
// VMOVDQA64 xmm m128
|
|
// VMOVDQA64 xmm xmm
|
|
// VMOVDQA64 ymm k m256
|
|
// VMOVDQA64 ymm k ymm
|
|
// VMOVDQA64 ymm m256
|
|
// VMOVDQA64 ymm ymm
|
|
// VMOVDQA64 m512 k zmm
|
|
// VMOVDQA64 m512 zmm
|
|
// VMOVDQA64 zmm k m512
|
|
// VMOVDQA64 zmm k zmm
|
|
// VMOVDQA64 zmm m512
|
|
// VMOVDQA64 zmm zmm
|
|
func VMOVDQA64(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMOVDQA64.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VMOVDQA64_Z: Move Aligned Quadword Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMOVDQA64.Z m128 k xmm
|
|
// VMOVDQA64.Z m256 k ymm
|
|
// VMOVDQA64.Z xmm k m128
|
|
// VMOVDQA64.Z xmm k xmm
|
|
// VMOVDQA64.Z ymm k m256
|
|
// VMOVDQA64.Z ymm k ymm
|
|
// VMOVDQA64.Z m512 k zmm
|
|
// VMOVDQA64.Z zmm k m512
|
|
// VMOVDQA64.Z zmm k zmm
|
|
func VMOVDQA64_Z(mxyz, k, mxyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMOVDQA64.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, mxyz1})
|
|
}
|
|
|
|
// VMOVDQU: Move Unaligned Double Quadword.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMOVDQU m128 xmm
|
|
// VMOVDQU m256 ymm
|
|
// VMOVDQU xmm m128
|
|
// VMOVDQU xmm xmm
|
|
// VMOVDQU ymm m256
|
|
// VMOVDQU ymm ymm
|
|
func VMOVDQU(mxy, mxy1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMOVDQU.Forms(), sffxs{}, []operand.Op{mxy, mxy1})
|
|
}
|
|
|
|
// VMOVDQU16: Move Unaligned Word Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMOVDQU16 m128 k xmm
|
|
// VMOVDQU16 m128 xmm
|
|
// VMOVDQU16 m256 k ymm
|
|
// VMOVDQU16 m256 ymm
|
|
// VMOVDQU16 xmm k m128
|
|
// VMOVDQU16 xmm k xmm
|
|
// VMOVDQU16 xmm m128
|
|
// VMOVDQU16 xmm xmm
|
|
// VMOVDQU16 ymm k m256
|
|
// VMOVDQU16 ymm k ymm
|
|
// VMOVDQU16 ymm m256
|
|
// VMOVDQU16 ymm ymm
|
|
// VMOVDQU16 m512 k zmm
|
|
// VMOVDQU16 m512 zmm
|
|
// VMOVDQU16 zmm k m512
|
|
// VMOVDQU16 zmm k zmm
|
|
// VMOVDQU16 zmm m512
|
|
// VMOVDQU16 zmm zmm
|
|
func VMOVDQU16(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMOVDQU16.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VMOVDQU16_Z: Move Unaligned Word Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMOVDQU16.Z m128 k xmm
|
|
// VMOVDQU16.Z m256 k ymm
|
|
// VMOVDQU16.Z xmm k m128
|
|
// VMOVDQU16.Z xmm k xmm
|
|
// VMOVDQU16.Z ymm k m256
|
|
// VMOVDQU16.Z ymm k ymm
|
|
// VMOVDQU16.Z m512 k zmm
|
|
// VMOVDQU16.Z zmm k m512
|
|
// VMOVDQU16.Z zmm k zmm
|
|
func VMOVDQU16_Z(mxyz, k, mxyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMOVDQU16.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, mxyz1})
|
|
}
|
|
|
|
// VMOVDQU32: Move Unaligned Doubleword Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMOVDQU32 m128 k xmm
|
|
// VMOVDQU32 m128 xmm
|
|
// VMOVDQU32 m256 k ymm
|
|
// VMOVDQU32 m256 ymm
|
|
// VMOVDQU32 xmm k m128
|
|
// VMOVDQU32 xmm k xmm
|
|
// VMOVDQU32 xmm m128
|
|
// VMOVDQU32 xmm xmm
|
|
// VMOVDQU32 ymm k m256
|
|
// VMOVDQU32 ymm k ymm
|
|
// VMOVDQU32 ymm m256
|
|
// VMOVDQU32 ymm ymm
|
|
// VMOVDQU32 m512 k zmm
|
|
// VMOVDQU32 m512 zmm
|
|
// VMOVDQU32 zmm k m512
|
|
// VMOVDQU32 zmm k zmm
|
|
// VMOVDQU32 zmm m512
|
|
// VMOVDQU32 zmm zmm
|
|
func VMOVDQU32(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMOVDQU32.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VMOVDQU32_Z: Move Unaligned Doubleword Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMOVDQU32.Z m128 k xmm
|
|
// VMOVDQU32.Z m256 k ymm
|
|
// VMOVDQU32.Z xmm k m128
|
|
// VMOVDQU32.Z xmm k xmm
|
|
// VMOVDQU32.Z ymm k m256
|
|
// VMOVDQU32.Z ymm k ymm
|
|
// VMOVDQU32.Z m512 k zmm
|
|
// VMOVDQU32.Z zmm k m512
|
|
// VMOVDQU32.Z zmm k zmm
|
|
func VMOVDQU32_Z(mxyz, k, mxyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMOVDQU32.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, mxyz1})
|
|
}
|
|
|
|
// VMOVDQU64: Move Unaligned Quadword Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMOVDQU64 m128 k xmm
|
|
// VMOVDQU64 m128 xmm
|
|
// VMOVDQU64 m256 k ymm
|
|
// VMOVDQU64 m256 ymm
|
|
// VMOVDQU64 xmm k m128
|
|
// VMOVDQU64 xmm k xmm
|
|
// VMOVDQU64 xmm m128
|
|
// VMOVDQU64 xmm xmm
|
|
// VMOVDQU64 ymm k m256
|
|
// VMOVDQU64 ymm k ymm
|
|
// VMOVDQU64 ymm m256
|
|
// VMOVDQU64 ymm ymm
|
|
// VMOVDQU64 m512 k zmm
|
|
// VMOVDQU64 m512 zmm
|
|
// VMOVDQU64 zmm k m512
|
|
// VMOVDQU64 zmm k zmm
|
|
// VMOVDQU64 zmm m512
|
|
// VMOVDQU64 zmm zmm
|
|
func VMOVDQU64(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMOVDQU64.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VMOVDQU64_Z: Move Unaligned Quadword Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMOVDQU64.Z m128 k xmm
|
|
// VMOVDQU64.Z m256 k ymm
|
|
// VMOVDQU64.Z xmm k m128
|
|
// VMOVDQU64.Z xmm k xmm
|
|
// VMOVDQU64.Z ymm k m256
|
|
// VMOVDQU64.Z ymm k ymm
|
|
// VMOVDQU64.Z m512 k zmm
|
|
// VMOVDQU64.Z zmm k m512
|
|
// VMOVDQU64.Z zmm k zmm
|
|
func VMOVDQU64_Z(mxyz, k, mxyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMOVDQU64.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, mxyz1})
|
|
}
|
|
|
|
// VMOVDQU8: Move Unaligned Byte Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMOVDQU8 m128 k xmm
|
|
// VMOVDQU8 m128 xmm
|
|
// VMOVDQU8 m256 k ymm
|
|
// VMOVDQU8 m256 ymm
|
|
// VMOVDQU8 xmm k m128
|
|
// VMOVDQU8 xmm k xmm
|
|
// VMOVDQU8 xmm m128
|
|
// VMOVDQU8 xmm xmm
|
|
// VMOVDQU8 ymm k m256
|
|
// VMOVDQU8 ymm k ymm
|
|
// VMOVDQU8 ymm m256
|
|
// VMOVDQU8 ymm ymm
|
|
// VMOVDQU8 m512 k zmm
|
|
// VMOVDQU8 m512 zmm
|
|
// VMOVDQU8 zmm k m512
|
|
// VMOVDQU8 zmm k zmm
|
|
// VMOVDQU8 zmm m512
|
|
// VMOVDQU8 zmm zmm
|
|
func VMOVDQU8(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMOVDQU8.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VMOVDQU8_Z: Move Unaligned Byte Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMOVDQU8.Z m128 k xmm
|
|
// VMOVDQU8.Z m256 k ymm
|
|
// VMOVDQU8.Z xmm k m128
|
|
// VMOVDQU8.Z xmm k xmm
|
|
// VMOVDQU8.Z ymm k m256
|
|
// VMOVDQU8.Z ymm k ymm
|
|
// VMOVDQU8.Z m512 k zmm
|
|
// VMOVDQU8.Z zmm k m512
|
|
// VMOVDQU8.Z zmm k zmm
|
|
func VMOVDQU8_Z(mxyz, k, mxyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMOVDQU8.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, mxyz1})
|
|
}
|
|
|
|
// VMOVHLPS: Move Packed Single-Precision Floating-Point Values High to Low.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMOVHLPS xmm xmm xmm
|
|
func VMOVHLPS(x, x1, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMOVHLPS.Forms(), sffxs{}, []operand.Op{x, x1, x2})
|
|
}
|
|
|
|
// VMOVHPD: Move High Packed Double-Precision Floating-Point Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMOVHPD m64 xmm xmm
|
|
// VMOVHPD xmm m64
|
|
func VMOVHPD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMOVHPD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VMOVHPS: Move High Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMOVHPS m64 xmm xmm
|
|
// VMOVHPS xmm m64
|
|
func VMOVHPS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMOVHPS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VMOVLHPS: Move Packed Single-Precision Floating-Point Values Low to High.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMOVLHPS xmm xmm xmm
|
|
func VMOVLHPS(x, x1, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMOVLHPS.Forms(), sffxs{}, []operand.Op{x, x1, x2})
|
|
}
|
|
|
|
// VMOVLPD: Move Low Packed Double-Precision Floating-Point Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMOVLPD m64 xmm xmm
|
|
// VMOVLPD xmm m64
|
|
func VMOVLPD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMOVLPD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VMOVLPS: Move Low Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMOVLPS m64 xmm xmm
|
|
// VMOVLPS xmm m64
|
|
func VMOVLPS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMOVLPS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VMOVMSKPD: Extract Packed Double-Precision Floating-Point Sign Mask.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMOVMSKPD xmm r32
|
|
// VMOVMSKPD ymm r32
|
|
func VMOVMSKPD(xy, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMOVMSKPD.Forms(), sffxs{}, []operand.Op{xy, r})
|
|
}
|
|
|
|
// VMOVMSKPS: Extract Packed Single-Precision Floating-Point Sign Mask.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMOVMSKPS xmm r32
|
|
// VMOVMSKPS ymm r32
|
|
func VMOVMSKPS(xy, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMOVMSKPS.Forms(), sffxs{}, []operand.Op{xy, r})
|
|
}
|
|
|
|
// VMOVNTDQ: Store Double Quadword Using Non-Temporal Hint.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMOVNTDQ xmm m128
|
|
// VMOVNTDQ ymm m256
|
|
// VMOVNTDQ zmm m512
|
|
func VMOVNTDQ(xyz, m operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMOVNTDQ.Forms(), sffxs{}, []operand.Op{xyz, m})
|
|
}
|
|
|
|
// VMOVNTDQA: Load Double Quadword Non-Temporal Aligned Hint.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMOVNTDQA m256 ymm
|
|
// VMOVNTDQA m128 xmm
|
|
// VMOVNTDQA m512 zmm
|
|
func VMOVNTDQA(m, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMOVNTDQA.Forms(), sffxs{}, []operand.Op{m, xyz})
|
|
}
|
|
|
|
// VMOVNTPD: Store Packed Double-Precision Floating-Point Values Using Non-Temporal Hint.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMOVNTPD xmm m128
|
|
// VMOVNTPD ymm m256
|
|
// VMOVNTPD zmm m512
|
|
func VMOVNTPD(xyz, m operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMOVNTPD.Forms(), sffxs{}, []operand.Op{xyz, m})
|
|
}
|
|
|
|
// VMOVNTPS: Store Packed Single-Precision Floating-Point Values Using Non-Temporal Hint.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMOVNTPS xmm m128
|
|
// VMOVNTPS ymm m256
|
|
// VMOVNTPS zmm m512
|
|
func VMOVNTPS(xyz, m operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMOVNTPS.Forms(), sffxs{}, []operand.Op{xyz, m})
|
|
}
|
|
|
|
// VMOVQ: Move Quadword.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMOVQ m64 xmm
|
|
// VMOVQ r64 xmm
|
|
// VMOVQ xmm m64
|
|
// VMOVQ xmm r64
|
|
// VMOVQ xmm xmm
|
|
func VMOVQ(mrx, mrx1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMOVQ.Forms(), sffxs{}, []operand.Op{mrx, mrx1})
|
|
}
|
|
|
|
// VMOVSD: Move Scalar Double-Precision Floating-Point Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMOVSD m64 xmm
|
|
// VMOVSD xmm m64
|
|
// VMOVSD xmm xmm xmm
|
|
// VMOVSD m64 k xmm
|
|
// VMOVSD xmm k m64
|
|
// VMOVSD xmm xmm k xmm
|
|
func VMOVSD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMOVSD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VMOVSD_Z: Move Scalar Double-Precision Floating-Point Value (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMOVSD.Z m64 k xmm
|
|
// VMOVSD.Z xmm xmm k xmm
|
|
func VMOVSD_Z(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMOVSD.Forms(), sffxs{sffxZ}, ops)
|
|
}
|
|
|
|
// VMOVSHDUP: Move Packed Single-FP High and Duplicate.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMOVSHDUP m128 xmm
|
|
// VMOVSHDUP m256 ymm
|
|
// VMOVSHDUP xmm xmm
|
|
// VMOVSHDUP ymm ymm
|
|
// VMOVSHDUP m128 k xmm
|
|
// VMOVSHDUP m256 k ymm
|
|
// VMOVSHDUP xmm k xmm
|
|
// VMOVSHDUP ymm k ymm
|
|
// VMOVSHDUP m512 k zmm
|
|
// VMOVSHDUP m512 zmm
|
|
// VMOVSHDUP zmm k zmm
|
|
// VMOVSHDUP zmm zmm
|
|
func VMOVSHDUP(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMOVSHDUP.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VMOVSHDUP_Z: Move Packed Single-FP High and Duplicate (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMOVSHDUP.Z m128 k xmm
|
|
// VMOVSHDUP.Z m256 k ymm
|
|
// VMOVSHDUP.Z xmm k xmm
|
|
// VMOVSHDUP.Z ymm k ymm
|
|
// VMOVSHDUP.Z m512 k zmm
|
|
// VMOVSHDUP.Z zmm k zmm
|
|
func VMOVSHDUP_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMOVSHDUP.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz})
|
|
}
|
|
|
|
// VMOVSLDUP: Move Packed Single-FP Low and Duplicate.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMOVSLDUP m128 xmm
|
|
// VMOVSLDUP m256 ymm
|
|
// VMOVSLDUP xmm xmm
|
|
// VMOVSLDUP ymm ymm
|
|
// VMOVSLDUP m128 k xmm
|
|
// VMOVSLDUP m256 k ymm
|
|
// VMOVSLDUP xmm k xmm
|
|
// VMOVSLDUP ymm k ymm
|
|
// VMOVSLDUP m512 k zmm
|
|
// VMOVSLDUP m512 zmm
|
|
// VMOVSLDUP zmm k zmm
|
|
// VMOVSLDUP zmm zmm
|
|
func VMOVSLDUP(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMOVSLDUP.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VMOVSLDUP_Z: Move Packed Single-FP Low and Duplicate (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMOVSLDUP.Z m128 k xmm
|
|
// VMOVSLDUP.Z m256 k ymm
|
|
// VMOVSLDUP.Z xmm k xmm
|
|
// VMOVSLDUP.Z ymm k ymm
|
|
// VMOVSLDUP.Z m512 k zmm
|
|
// VMOVSLDUP.Z zmm k zmm
|
|
func VMOVSLDUP_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMOVSLDUP.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz})
|
|
}
|
|
|
|
// VMOVSS: Move Scalar Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMOVSS m32 xmm
|
|
// VMOVSS xmm m32
|
|
// VMOVSS xmm xmm xmm
|
|
// VMOVSS m32 k xmm
|
|
// VMOVSS xmm k m32
|
|
// VMOVSS xmm xmm k xmm
|
|
func VMOVSS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMOVSS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VMOVSS_Z: Move Scalar Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMOVSS.Z m32 k xmm
|
|
// VMOVSS.Z xmm xmm k xmm
|
|
func VMOVSS_Z(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMOVSS.Forms(), sffxs{sffxZ}, ops)
|
|
}
|
|
|
|
// VMOVUPD: Move Unaligned Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMOVUPD m128 xmm
|
|
// VMOVUPD m256 ymm
|
|
// VMOVUPD xmm m128
|
|
// VMOVUPD xmm xmm
|
|
// VMOVUPD ymm m256
|
|
// VMOVUPD ymm ymm
|
|
// VMOVUPD m128 k xmm
|
|
// VMOVUPD m256 k ymm
|
|
// VMOVUPD xmm k m128
|
|
// VMOVUPD xmm k xmm
|
|
// VMOVUPD ymm k m256
|
|
// VMOVUPD ymm k ymm
|
|
// VMOVUPD m512 k zmm
|
|
// VMOVUPD m512 zmm
|
|
// VMOVUPD zmm k m512
|
|
// VMOVUPD zmm k zmm
|
|
// VMOVUPD zmm m512
|
|
// VMOVUPD zmm zmm
|
|
func VMOVUPD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMOVUPD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VMOVUPD_Z: Move Unaligned Packed Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMOVUPD.Z m128 k xmm
|
|
// VMOVUPD.Z m256 k ymm
|
|
// VMOVUPD.Z xmm k m128
|
|
// VMOVUPD.Z xmm k xmm
|
|
// VMOVUPD.Z ymm k m256
|
|
// VMOVUPD.Z ymm k ymm
|
|
// VMOVUPD.Z m512 k zmm
|
|
// VMOVUPD.Z zmm k m512
|
|
// VMOVUPD.Z zmm k zmm
|
|
func VMOVUPD_Z(mxyz, k, mxyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMOVUPD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, mxyz1})
|
|
}
|
|
|
|
// VMOVUPS: Move Unaligned Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMOVUPS m128 xmm
|
|
// VMOVUPS m256 ymm
|
|
// VMOVUPS xmm m128
|
|
// VMOVUPS xmm xmm
|
|
// VMOVUPS ymm m256
|
|
// VMOVUPS ymm ymm
|
|
// VMOVUPS m128 k xmm
|
|
// VMOVUPS m256 k ymm
|
|
// VMOVUPS xmm k m128
|
|
// VMOVUPS xmm k xmm
|
|
// VMOVUPS ymm k m256
|
|
// VMOVUPS ymm k ymm
|
|
// VMOVUPS m512 k zmm
|
|
// VMOVUPS m512 zmm
|
|
// VMOVUPS zmm k m512
|
|
// VMOVUPS zmm k zmm
|
|
// VMOVUPS zmm m512
|
|
// VMOVUPS zmm zmm
|
|
func VMOVUPS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMOVUPS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VMOVUPS_Z: Move Unaligned Packed Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMOVUPS.Z m128 k xmm
|
|
// VMOVUPS.Z m256 k ymm
|
|
// VMOVUPS.Z xmm k m128
|
|
// VMOVUPS.Z xmm k xmm
|
|
// VMOVUPS.Z ymm k m256
|
|
// VMOVUPS.Z ymm k ymm
|
|
// VMOVUPS.Z m512 k zmm
|
|
// VMOVUPS.Z zmm k m512
|
|
// VMOVUPS.Z zmm k zmm
|
|
func VMOVUPS_Z(mxyz, k, mxyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMOVUPS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, mxyz1})
|
|
}
|
|
|
|
// VMPSADBW: Compute Multiple Packed Sums of Absolute Difference.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMPSADBW imm8 m256 ymm ymm
|
|
// VMPSADBW imm8 ymm ymm ymm
|
|
// VMPSADBW imm8 m128 xmm xmm
|
|
// VMPSADBW imm8 xmm xmm xmm
|
|
func VMPSADBW(i, mxy, xy, xy1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMPSADBW.Forms(), sffxs{}, []operand.Op{i, mxy, xy, xy1})
|
|
}
|
|
|
|
// VMULPD: Multiply Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMULPD m128 xmm xmm
|
|
// VMULPD m256 ymm ymm
|
|
// VMULPD xmm xmm xmm
|
|
// VMULPD ymm ymm ymm
|
|
// VMULPD m128 xmm k xmm
|
|
// VMULPD m256 ymm k ymm
|
|
// VMULPD xmm xmm k xmm
|
|
// VMULPD ymm ymm k ymm
|
|
// VMULPD m512 zmm k zmm
|
|
// VMULPD m512 zmm zmm
|
|
// VMULPD zmm zmm k zmm
|
|
// VMULPD zmm zmm zmm
|
|
func VMULPD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMULPD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VMULPD_BCST: Multiply Packed Double-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMULPD.BCST m64 xmm k xmm
|
|
// VMULPD.BCST m64 xmm xmm
|
|
// VMULPD.BCST m64 ymm k ymm
|
|
// VMULPD.BCST m64 ymm ymm
|
|
// VMULPD.BCST m64 zmm k zmm
|
|
// VMULPD.BCST m64 zmm zmm
|
|
func VMULPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMULPD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VMULPD_BCST_Z: Multiply Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMULPD.BCST.Z m64 xmm k xmm
|
|
// VMULPD.BCST.Z m64 ymm k ymm
|
|
// VMULPD.BCST.Z m64 zmm k zmm
|
|
func VMULPD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMULPD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VMULPD_RD_SAE: Multiply Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMULPD.RD_SAE zmm zmm k zmm
|
|
// VMULPD.RD_SAE zmm zmm zmm
|
|
func VMULPD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMULPD.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VMULPD_RD_SAE_Z: Multiply Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMULPD.RD_SAE.Z zmm zmm k zmm
|
|
func VMULPD_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMULPD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VMULPD_RN_SAE: Multiply Packed Double-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMULPD.RN_SAE zmm zmm k zmm
|
|
// VMULPD.RN_SAE zmm zmm zmm
|
|
func VMULPD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMULPD.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VMULPD_RN_SAE_Z: Multiply Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMULPD.RN_SAE.Z zmm zmm k zmm
|
|
func VMULPD_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMULPD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VMULPD_RU_SAE: Multiply Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMULPD.RU_SAE zmm zmm k zmm
|
|
// VMULPD.RU_SAE zmm zmm zmm
|
|
func VMULPD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMULPD.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VMULPD_RU_SAE_Z: Multiply Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMULPD.RU_SAE.Z zmm zmm k zmm
|
|
func VMULPD_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMULPD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VMULPD_RZ_SAE: Multiply Packed Double-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMULPD.RZ_SAE zmm zmm k zmm
|
|
// VMULPD.RZ_SAE zmm zmm zmm
|
|
func VMULPD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMULPD.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VMULPD_RZ_SAE_Z: Multiply Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMULPD.RZ_SAE.Z zmm zmm k zmm
|
|
func VMULPD_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMULPD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VMULPD_Z: Multiply Packed Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMULPD.Z m128 xmm k xmm
|
|
// VMULPD.Z m256 ymm k ymm
|
|
// VMULPD.Z xmm xmm k xmm
|
|
// VMULPD.Z ymm ymm k ymm
|
|
// VMULPD.Z m512 zmm k zmm
|
|
// VMULPD.Z zmm zmm k zmm
|
|
func VMULPD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMULPD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VMULPS: Multiply Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMULPS m128 xmm xmm
|
|
// VMULPS m256 ymm ymm
|
|
// VMULPS xmm xmm xmm
|
|
// VMULPS ymm ymm ymm
|
|
// VMULPS m128 xmm k xmm
|
|
// VMULPS m256 ymm k ymm
|
|
// VMULPS xmm xmm k xmm
|
|
// VMULPS ymm ymm k ymm
|
|
// VMULPS m512 zmm k zmm
|
|
// VMULPS m512 zmm zmm
|
|
// VMULPS zmm zmm k zmm
|
|
// VMULPS zmm zmm zmm
|
|
func VMULPS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMULPS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VMULPS_BCST: Multiply Packed Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMULPS.BCST m32 xmm k xmm
|
|
// VMULPS.BCST m32 xmm xmm
|
|
// VMULPS.BCST m32 ymm k ymm
|
|
// VMULPS.BCST m32 ymm ymm
|
|
// VMULPS.BCST m32 zmm k zmm
|
|
// VMULPS.BCST m32 zmm zmm
|
|
func VMULPS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMULPS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VMULPS_BCST_Z: Multiply Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMULPS.BCST.Z m32 xmm k xmm
|
|
// VMULPS.BCST.Z m32 ymm k ymm
|
|
// VMULPS.BCST.Z m32 zmm k zmm
|
|
func VMULPS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMULPS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VMULPS_RD_SAE: Multiply Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMULPS.RD_SAE zmm zmm k zmm
|
|
// VMULPS.RD_SAE zmm zmm zmm
|
|
func VMULPS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMULPS.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VMULPS_RD_SAE_Z: Multiply Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMULPS.RD_SAE.Z zmm zmm k zmm
|
|
func VMULPS_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMULPS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VMULPS_RN_SAE: Multiply Packed Single-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMULPS.RN_SAE zmm zmm k zmm
|
|
// VMULPS.RN_SAE zmm zmm zmm
|
|
func VMULPS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMULPS.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VMULPS_RN_SAE_Z: Multiply Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMULPS.RN_SAE.Z zmm zmm k zmm
|
|
func VMULPS_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMULPS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VMULPS_RU_SAE: Multiply Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMULPS.RU_SAE zmm zmm k zmm
|
|
// VMULPS.RU_SAE zmm zmm zmm
|
|
func VMULPS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMULPS.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VMULPS_RU_SAE_Z: Multiply Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMULPS.RU_SAE.Z zmm zmm k zmm
|
|
func VMULPS_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMULPS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VMULPS_RZ_SAE: Multiply Packed Single-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMULPS.RZ_SAE zmm zmm k zmm
|
|
// VMULPS.RZ_SAE zmm zmm zmm
|
|
func VMULPS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMULPS.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VMULPS_RZ_SAE_Z: Multiply Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMULPS.RZ_SAE.Z zmm zmm k zmm
|
|
func VMULPS_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMULPS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VMULPS_Z: Multiply Packed Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMULPS.Z m128 xmm k xmm
|
|
// VMULPS.Z m256 ymm k ymm
|
|
// VMULPS.Z xmm xmm k xmm
|
|
// VMULPS.Z ymm ymm k ymm
|
|
// VMULPS.Z m512 zmm k zmm
|
|
// VMULPS.Z zmm zmm k zmm
|
|
func VMULPS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMULPS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VMULSD: Multiply Scalar Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMULSD m64 xmm xmm
|
|
// VMULSD xmm xmm xmm
|
|
// VMULSD m64 xmm k xmm
|
|
// VMULSD xmm xmm k xmm
|
|
func VMULSD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMULSD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VMULSD_RD_SAE: Multiply Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMULSD.RD_SAE xmm xmm k xmm
|
|
// VMULSD.RD_SAE xmm xmm xmm
|
|
func VMULSD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMULSD.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VMULSD_RD_SAE_Z: Multiply Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMULSD.RD_SAE.Z xmm xmm k xmm
|
|
func VMULSD_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMULSD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VMULSD_RN_SAE: Multiply Scalar Double-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMULSD.RN_SAE xmm xmm k xmm
|
|
// VMULSD.RN_SAE xmm xmm xmm
|
|
func VMULSD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMULSD.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VMULSD_RN_SAE_Z: Multiply Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMULSD.RN_SAE.Z xmm xmm k xmm
|
|
func VMULSD_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMULSD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VMULSD_RU_SAE: Multiply Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMULSD.RU_SAE xmm xmm k xmm
|
|
// VMULSD.RU_SAE xmm xmm xmm
|
|
func VMULSD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMULSD.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VMULSD_RU_SAE_Z: Multiply Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMULSD.RU_SAE.Z xmm xmm k xmm
|
|
func VMULSD_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMULSD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VMULSD_RZ_SAE: Multiply Scalar Double-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMULSD.RZ_SAE xmm xmm k xmm
|
|
// VMULSD.RZ_SAE xmm xmm xmm
|
|
func VMULSD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMULSD.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VMULSD_RZ_SAE_Z: Multiply Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMULSD.RZ_SAE.Z xmm xmm k xmm
|
|
func VMULSD_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMULSD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VMULSD_Z: Multiply Scalar Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMULSD.Z m64 xmm k xmm
|
|
// VMULSD.Z xmm xmm k xmm
|
|
func VMULSD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMULSD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VMULSS: Multiply Scalar Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMULSS m32 xmm xmm
|
|
// VMULSS xmm xmm xmm
|
|
// VMULSS m32 xmm k xmm
|
|
// VMULSS xmm xmm k xmm
|
|
func VMULSS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMULSS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VMULSS_RD_SAE: Multiply Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMULSS.RD_SAE xmm xmm k xmm
|
|
// VMULSS.RD_SAE xmm xmm xmm
|
|
func VMULSS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMULSS.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VMULSS_RD_SAE_Z: Multiply Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMULSS.RD_SAE.Z xmm xmm k xmm
|
|
func VMULSS_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMULSS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VMULSS_RN_SAE: Multiply Scalar Single-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMULSS.RN_SAE xmm xmm k xmm
|
|
// VMULSS.RN_SAE xmm xmm xmm
|
|
func VMULSS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMULSS.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VMULSS_RN_SAE_Z: Multiply Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMULSS.RN_SAE.Z xmm xmm k xmm
|
|
func VMULSS_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMULSS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VMULSS_RU_SAE: Multiply Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMULSS.RU_SAE xmm xmm k xmm
|
|
// VMULSS.RU_SAE xmm xmm xmm
|
|
func VMULSS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMULSS.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VMULSS_RU_SAE_Z: Multiply Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMULSS.RU_SAE.Z xmm xmm k xmm
|
|
func VMULSS_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMULSS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VMULSS_RZ_SAE: Multiply Scalar Single-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMULSS.RZ_SAE xmm xmm k xmm
|
|
// VMULSS.RZ_SAE xmm xmm xmm
|
|
func VMULSS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMULSS.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VMULSS_RZ_SAE_Z: Multiply Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMULSS.RZ_SAE.Z xmm xmm k xmm
|
|
func VMULSS_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMULSS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VMULSS_Z: Multiply Scalar Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VMULSS.Z m32 xmm k xmm
|
|
// VMULSS.Z xmm xmm k xmm
|
|
func VMULSS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVMULSS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VORPD: Bitwise Logical OR of Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VORPD m128 xmm xmm
|
|
// VORPD m256 ymm ymm
|
|
// VORPD xmm xmm xmm
|
|
// VORPD ymm ymm ymm
|
|
// VORPD m128 xmm k xmm
|
|
// VORPD m256 ymm k ymm
|
|
// VORPD xmm xmm k xmm
|
|
// VORPD ymm ymm k ymm
|
|
// VORPD m512 zmm k zmm
|
|
// VORPD m512 zmm zmm
|
|
// VORPD zmm zmm k zmm
|
|
// VORPD zmm zmm zmm
|
|
func VORPD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVORPD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VORPD_BCST: Bitwise Logical OR of Double-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VORPD.BCST m64 xmm k xmm
|
|
// VORPD.BCST m64 xmm xmm
|
|
// VORPD.BCST m64 ymm k ymm
|
|
// VORPD.BCST m64 ymm ymm
|
|
// VORPD.BCST m64 zmm k zmm
|
|
// VORPD.BCST m64 zmm zmm
|
|
func VORPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVORPD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VORPD_BCST_Z: Bitwise Logical OR of Double-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VORPD.BCST.Z m64 xmm k xmm
|
|
// VORPD.BCST.Z m64 ymm k ymm
|
|
// VORPD.BCST.Z m64 zmm k zmm
|
|
func VORPD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVORPD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VORPD_Z: Bitwise Logical OR of Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VORPD.Z m128 xmm k xmm
|
|
// VORPD.Z m256 ymm k ymm
|
|
// VORPD.Z xmm xmm k xmm
|
|
// VORPD.Z ymm ymm k ymm
|
|
// VORPD.Z m512 zmm k zmm
|
|
// VORPD.Z zmm zmm k zmm
|
|
func VORPD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVORPD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VORPS: Bitwise Logical OR of Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VORPS m128 xmm xmm
|
|
// VORPS m256 ymm ymm
|
|
// VORPS xmm xmm xmm
|
|
// VORPS ymm ymm ymm
|
|
// VORPS m128 xmm k xmm
|
|
// VORPS m256 ymm k ymm
|
|
// VORPS xmm xmm k xmm
|
|
// VORPS ymm ymm k ymm
|
|
// VORPS m512 zmm k zmm
|
|
// VORPS m512 zmm zmm
|
|
// VORPS zmm zmm k zmm
|
|
// VORPS zmm zmm zmm
|
|
func VORPS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVORPS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VORPS_BCST: Bitwise Logical OR of Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VORPS.BCST m32 xmm k xmm
|
|
// VORPS.BCST m32 xmm xmm
|
|
// VORPS.BCST m32 ymm k ymm
|
|
// VORPS.BCST m32 ymm ymm
|
|
// VORPS.BCST m32 zmm k zmm
|
|
// VORPS.BCST m32 zmm zmm
|
|
func VORPS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVORPS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VORPS_BCST_Z: Bitwise Logical OR of Single-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VORPS.BCST.Z m32 xmm k xmm
|
|
// VORPS.BCST.Z m32 ymm k ymm
|
|
// VORPS.BCST.Z m32 zmm k zmm
|
|
func VORPS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVORPS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VORPS_Z: Bitwise Logical OR of Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VORPS.Z m128 xmm k xmm
|
|
// VORPS.Z m256 ymm k ymm
|
|
// VORPS.Z xmm xmm k xmm
|
|
// VORPS.Z ymm ymm k ymm
|
|
// VORPS.Z m512 zmm k zmm
|
|
// VORPS.Z zmm zmm k zmm
|
|
func VORPS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVORPS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPABSB: Packed Absolute Value of Byte Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPABSB m256 ymm
|
|
// VPABSB ymm ymm
|
|
// VPABSB m128 xmm
|
|
// VPABSB xmm xmm
|
|
// VPABSB m128 k xmm
|
|
// VPABSB m256 k ymm
|
|
// VPABSB xmm k xmm
|
|
// VPABSB ymm k ymm
|
|
// VPABSB m512 k zmm
|
|
// VPABSB m512 zmm
|
|
// VPABSB zmm k zmm
|
|
// VPABSB zmm zmm
|
|
func VPABSB(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPABSB.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPABSB_Z: Packed Absolute Value of Byte Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPABSB.Z m128 k xmm
|
|
// VPABSB.Z m256 k ymm
|
|
// VPABSB.Z xmm k xmm
|
|
// VPABSB.Z ymm k ymm
|
|
// VPABSB.Z m512 k zmm
|
|
// VPABSB.Z zmm k zmm
|
|
func VPABSB_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPABSB.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz})
|
|
}
|
|
|
|
// VPABSD: Packed Absolute Value of Doubleword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPABSD m256 ymm
|
|
// VPABSD ymm ymm
|
|
// VPABSD m128 xmm
|
|
// VPABSD xmm xmm
|
|
// VPABSD m128 k xmm
|
|
// VPABSD m256 k ymm
|
|
// VPABSD xmm k xmm
|
|
// VPABSD ymm k ymm
|
|
// VPABSD m512 k zmm
|
|
// VPABSD m512 zmm
|
|
// VPABSD zmm k zmm
|
|
// VPABSD zmm zmm
|
|
func VPABSD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPABSD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPABSD_BCST: Packed Absolute Value of Doubleword Integers (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPABSD.BCST m32 k xmm
|
|
// VPABSD.BCST m32 k ymm
|
|
// VPABSD.BCST m32 xmm
|
|
// VPABSD.BCST m32 ymm
|
|
// VPABSD.BCST m32 k zmm
|
|
// VPABSD.BCST m32 zmm
|
|
func VPABSD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPABSD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPABSD_BCST_Z: Packed Absolute Value of Doubleword Integers (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPABSD.BCST.Z m32 k xmm
|
|
// VPABSD.BCST.Z m32 k ymm
|
|
// VPABSD.BCST.Z m32 k zmm
|
|
func VPABSD_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPABSD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz})
|
|
}
|
|
|
|
// VPABSD_Z: Packed Absolute Value of Doubleword Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPABSD.Z m128 k xmm
|
|
// VPABSD.Z m256 k ymm
|
|
// VPABSD.Z xmm k xmm
|
|
// VPABSD.Z ymm k ymm
|
|
// VPABSD.Z m512 k zmm
|
|
// VPABSD.Z zmm k zmm
|
|
func VPABSD_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPABSD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz})
|
|
}
|
|
|
|
// VPABSQ: Packed Absolute Value of Quadword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPABSQ m128 k xmm
|
|
// VPABSQ m128 xmm
|
|
// VPABSQ m256 k ymm
|
|
// VPABSQ m256 ymm
|
|
// VPABSQ xmm k xmm
|
|
// VPABSQ xmm xmm
|
|
// VPABSQ ymm k ymm
|
|
// VPABSQ ymm ymm
|
|
// VPABSQ m512 k zmm
|
|
// VPABSQ m512 zmm
|
|
// VPABSQ zmm k zmm
|
|
// VPABSQ zmm zmm
|
|
func VPABSQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPABSQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPABSQ_BCST: Packed Absolute Value of Quadword Integers (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPABSQ.BCST m64 k xmm
|
|
// VPABSQ.BCST m64 k ymm
|
|
// VPABSQ.BCST m64 xmm
|
|
// VPABSQ.BCST m64 ymm
|
|
// VPABSQ.BCST m64 k zmm
|
|
// VPABSQ.BCST m64 zmm
|
|
func VPABSQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPABSQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPABSQ_BCST_Z: Packed Absolute Value of Quadword Integers (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPABSQ.BCST.Z m64 k xmm
|
|
// VPABSQ.BCST.Z m64 k ymm
|
|
// VPABSQ.BCST.Z m64 k zmm
|
|
func VPABSQ_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPABSQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz})
|
|
}
|
|
|
|
// VPABSQ_Z: Packed Absolute Value of Quadword Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPABSQ.Z m128 k xmm
|
|
// VPABSQ.Z m256 k ymm
|
|
// VPABSQ.Z xmm k xmm
|
|
// VPABSQ.Z ymm k ymm
|
|
// VPABSQ.Z m512 k zmm
|
|
// VPABSQ.Z zmm k zmm
|
|
func VPABSQ_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPABSQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz})
|
|
}
|
|
|
|
// VPABSW: Packed Absolute Value of Word Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPABSW m256 ymm
|
|
// VPABSW ymm ymm
|
|
// VPABSW m128 xmm
|
|
// VPABSW xmm xmm
|
|
// VPABSW m128 k xmm
|
|
// VPABSW m256 k ymm
|
|
// VPABSW xmm k xmm
|
|
// VPABSW ymm k ymm
|
|
// VPABSW m512 k zmm
|
|
// VPABSW m512 zmm
|
|
// VPABSW zmm k zmm
|
|
// VPABSW zmm zmm
|
|
func VPABSW(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPABSW.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPABSW_Z: Packed Absolute Value of Word Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPABSW.Z m128 k xmm
|
|
// VPABSW.Z m256 k ymm
|
|
// VPABSW.Z xmm k xmm
|
|
// VPABSW.Z ymm k ymm
|
|
// VPABSW.Z m512 k zmm
|
|
// VPABSW.Z zmm k zmm
|
|
func VPABSW_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPABSW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz})
|
|
}
|
|
|
|
// VPACKSSDW: Pack Doublewords into Words with Signed Saturation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPACKSSDW m256 ymm ymm
|
|
// VPACKSSDW ymm ymm ymm
|
|
// VPACKSSDW m128 xmm xmm
|
|
// VPACKSSDW xmm xmm xmm
|
|
// VPACKSSDW m128 xmm k xmm
|
|
// VPACKSSDW m256 ymm k ymm
|
|
// VPACKSSDW xmm xmm k xmm
|
|
// VPACKSSDW ymm ymm k ymm
|
|
// VPACKSSDW m512 zmm k zmm
|
|
// VPACKSSDW m512 zmm zmm
|
|
// VPACKSSDW zmm zmm k zmm
|
|
// VPACKSSDW zmm zmm zmm
|
|
func VPACKSSDW(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPACKSSDW.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPACKSSDW_BCST: Pack Doublewords into Words with Signed Saturation (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPACKSSDW.BCST m32 xmm k xmm
|
|
// VPACKSSDW.BCST m32 xmm xmm
|
|
// VPACKSSDW.BCST m32 ymm k ymm
|
|
// VPACKSSDW.BCST m32 ymm ymm
|
|
// VPACKSSDW.BCST m32 zmm k zmm
|
|
// VPACKSSDW.BCST m32 zmm zmm
|
|
func VPACKSSDW_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPACKSSDW.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPACKSSDW_BCST_Z: Pack Doublewords into Words with Signed Saturation (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPACKSSDW.BCST.Z m32 xmm k xmm
|
|
// VPACKSSDW.BCST.Z m32 ymm k ymm
|
|
// VPACKSSDW.BCST.Z m32 zmm k zmm
|
|
func VPACKSSDW_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPACKSSDW.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPACKSSDW_Z: Pack Doublewords into Words with Signed Saturation (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPACKSSDW.Z m128 xmm k xmm
|
|
// VPACKSSDW.Z m256 ymm k ymm
|
|
// VPACKSSDW.Z xmm xmm k xmm
|
|
// VPACKSSDW.Z ymm ymm k ymm
|
|
// VPACKSSDW.Z m512 zmm k zmm
|
|
// VPACKSSDW.Z zmm zmm k zmm
|
|
func VPACKSSDW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPACKSSDW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPACKSSWB: Pack Words into Bytes with Signed Saturation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPACKSSWB m256 ymm ymm
|
|
// VPACKSSWB ymm ymm ymm
|
|
// VPACKSSWB m128 xmm xmm
|
|
// VPACKSSWB xmm xmm xmm
|
|
// VPACKSSWB m128 xmm k xmm
|
|
// VPACKSSWB m256 ymm k ymm
|
|
// VPACKSSWB xmm xmm k xmm
|
|
// VPACKSSWB ymm ymm k ymm
|
|
// VPACKSSWB m512 zmm k zmm
|
|
// VPACKSSWB m512 zmm zmm
|
|
// VPACKSSWB zmm zmm k zmm
|
|
// VPACKSSWB zmm zmm zmm
|
|
func VPACKSSWB(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPACKSSWB.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPACKSSWB_Z: Pack Words into Bytes with Signed Saturation (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPACKSSWB.Z m128 xmm k xmm
|
|
// VPACKSSWB.Z m256 ymm k ymm
|
|
// VPACKSSWB.Z xmm xmm k xmm
|
|
// VPACKSSWB.Z ymm ymm k ymm
|
|
// VPACKSSWB.Z m512 zmm k zmm
|
|
// VPACKSSWB.Z zmm zmm k zmm
|
|
func VPACKSSWB_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPACKSSWB.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPACKUSDW: Pack Doublewords into Words with Unsigned Saturation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPACKUSDW m256 ymm ymm
|
|
// VPACKUSDW ymm ymm ymm
|
|
// VPACKUSDW m128 xmm xmm
|
|
// VPACKUSDW xmm xmm xmm
|
|
// VPACKUSDW m128 xmm k xmm
|
|
// VPACKUSDW m256 ymm k ymm
|
|
// VPACKUSDW xmm xmm k xmm
|
|
// VPACKUSDW ymm ymm k ymm
|
|
// VPACKUSDW m512 zmm k zmm
|
|
// VPACKUSDW m512 zmm zmm
|
|
// VPACKUSDW zmm zmm k zmm
|
|
// VPACKUSDW zmm zmm zmm
|
|
func VPACKUSDW(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPACKUSDW.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPACKUSDW_BCST: Pack Doublewords into Words with Unsigned Saturation (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPACKUSDW.BCST m32 xmm k xmm
|
|
// VPACKUSDW.BCST m32 xmm xmm
|
|
// VPACKUSDW.BCST m32 ymm k ymm
|
|
// VPACKUSDW.BCST m32 ymm ymm
|
|
// VPACKUSDW.BCST m32 zmm k zmm
|
|
// VPACKUSDW.BCST m32 zmm zmm
|
|
func VPACKUSDW_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPACKUSDW.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPACKUSDW_BCST_Z: Pack Doublewords into Words with Unsigned Saturation (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPACKUSDW.BCST.Z m32 xmm k xmm
|
|
// VPACKUSDW.BCST.Z m32 ymm k ymm
|
|
// VPACKUSDW.BCST.Z m32 zmm k zmm
|
|
func VPACKUSDW_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPACKUSDW.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPACKUSDW_Z: Pack Doublewords into Words with Unsigned Saturation (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPACKUSDW.Z m128 xmm k xmm
|
|
// VPACKUSDW.Z m256 ymm k ymm
|
|
// VPACKUSDW.Z xmm xmm k xmm
|
|
// VPACKUSDW.Z ymm ymm k ymm
|
|
// VPACKUSDW.Z m512 zmm k zmm
|
|
// VPACKUSDW.Z zmm zmm k zmm
|
|
func VPACKUSDW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPACKUSDW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPACKUSWB: Pack Words into Bytes with Unsigned Saturation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPACKUSWB m256 ymm ymm
|
|
// VPACKUSWB ymm ymm ymm
|
|
// VPACKUSWB m128 xmm xmm
|
|
// VPACKUSWB xmm xmm xmm
|
|
// VPACKUSWB m128 xmm k xmm
|
|
// VPACKUSWB m256 ymm k ymm
|
|
// VPACKUSWB xmm xmm k xmm
|
|
// VPACKUSWB ymm ymm k ymm
|
|
// VPACKUSWB m512 zmm k zmm
|
|
// VPACKUSWB m512 zmm zmm
|
|
// VPACKUSWB zmm zmm k zmm
|
|
// VPACKUSWB zmm zmm zmm
|
|
func VPACKUSWB(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPACKUSWB.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPACKUSWB_Z: Pack Words into Bytes with Unsigned Saturation (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPACKUSWB.Z m128 xmm k xmm
|
|
// VPACKUSWB.Z m256 ymm k ymm
|
|
// VPACKUSWB.Z xmm xmm k xmm
|
|
// VPACKUSWB.Z ymm ymm k ymm
|
|
// VPACKUSWB.Z m512 zmm k zmm
|
|
// VPACKUSWB.Z zmm zmm k zmm
|
|
func VPACKUSWB_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPACKUSWB.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPADDB: Add Packed Byte Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPADDB m256 ymm ymm
|
|
// VPADDB ymm ymm ymm
|
|
// VPADDB m128 xmm xmm
|
|
// VPADDB xmm xmm xmm
|
|
// VPADDB m128 xmm k xmm
|
|
// VPADDB m256 ymm k ymm
|
|
// VPADDB xmm xmm k xmm
|
|
// VPADDB ymm ymm k ymm
|
|
// VPADDB m512 zmm k zmm
|
|
// VPADDB m512 zmm zmm
|
|
// VPADDB zmm zmm k zmm
|
|
// VPADDB zmm zmm zmm
|
|
func VPADDB(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPADDB.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPADDB_Z: Add Packed Byte Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPADDB.Z m128 xmm k xmm
|
|
// VPADDB.Z m256 ymm k ymm
|
|
// VPADDB.Z xmm xmm k xmm
|
|
// VPADDB.Z ymm ymm k ymm
|
|
// VPADDB.Z m512 zmm k zmm
|
|
// VPADDB.Z zmm zmm k zmm
|
|
func VPADDB_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPADDB.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPADDD: Add Packed Doubleword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPADDD m256 ymm ymm
|
|
// VPADDD ymm ymm ymm
|
|
// VPADDD m128 xmm xmm
|
|
// VPADDD xmm xmm xmm
|
|
// VPADDD m128 xmm k xmm
|
|
// VPADDD m256 ymm k ymm
|
|
// VPADDD xmm xmm k xmm
|
|
// VPADDD ymm ymm k ymm
|
|
// VPADDD m512 zmm k zmm
|
|
// VPADDD m512 zmm zmm
|
|
// VPADDD zmm zmm k zmm
|
|
// VPADDD zmm zmm zmm
|
|
func VPADDD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPADDD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPADDD_BCST: Add Packed Doubleword Integers (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPADDD.BCST m32 xmm k xmm
|
|
// VPADDD.BCST m32 xmm xmm
|
|
// VPADDD.BCST m32 ymm k ymm
|
|
// VPADDD.BCST m32 ymm ymm
|
|
// VPADDD.BCST m32 zmm k zmm
|
|
// VPADDD.BCST m32 zmm zmm
|
|
func VPADDD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPADDD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPADDD_BCST_Z: Add Packed Doubleword Integers (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPADDD.BCST.Z m32 xmm k xmm
|
|
// VPADDD.BCST.Z m32 ymm k ymm
|
|
// VPADDD.BCST.Z m32 zmm k zmm
|
|
func VPADDD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPADDD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPADDD_Z: Add Packed Doubleword Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPADDD.Z m128 xmm k xmm
|
|
// VPADDD.Z m256 ymm k ymm
|
|
// VPADDD.Z xmm xmm k xmm
|
|
// VPADDD.Z ymm ymm k ymm
|
|
// VPADDD.Z m512 zmm k zmm
|
|
// VPADDD.Z zmm zmm k zmm
|
|
func VPADDD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPADDD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPADDQ: Add Packed Quadword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPADDQ m256 ymm ymm
|
|
// VPADDQ ymm ymm ymm
|
|
// VPADDQ m128 xmm xmm
|
|
// VPADDQ xmm xmm xmm
|
|
// VPADDQ m128 xmm k xmm
|
|
// VPADDQ m256 ymm k ymm
|
|
// VPADDQ xmm xmm k xmm
|
|
// VPADDQ ymm ymm k ymm
|
|
// VPADDQ m512 zmm k zmm
|
|
// VPADDQ m512 zmm zmm
|
|
// VPADDQ zmm zmm k zmm
|
|
// VPADDQ zmm zmm zmm
|
|
func VPADDQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPADDQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPADDQ_BCST: Add Packed Quadword Integers (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPADDQ.BCST m64 xmm k xmm
|
|
// VPADDQ.BCST m64 xmm xmm
|
|
// VPADDQ.BCST m64 ymm k ymm
|
|
// VPADDQ.BCST m64 ymm ymm
|
|
// VPADDQ.BCST m64 zmm k zmm
|
|
// VPADDQ.BCST m64 zmm zmm
|
|
func VPADDQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPADDQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPADDQ_BCST_Z: Add Packed Quadword Integers (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPADDQ.BCST.Z m64 xmm k xmm
|
|
// VPADDQ.BCST.Z m64 ymm k ymm
|
|
// VPADDQ.BCST.Z m64 zmm k zmm
|
|
func VPADDQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPADDQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPADDQ_Z: Add Packed Quadword Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPADDQ.Z m128 xmm k xmm
|
|
// VPADDQ.Z m256 ymm k ymm
|
|
// VPADDQ.Z xmm xmm k xmm
|
|
// VPADDQ.Z ymm ymm k ymm
|
|
// VPADDQ.Z m512 zmm k zmm
|
|
// VPADDQ.Z zmm zmm k zmm
|
|
func VPADDQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPADDQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPADDSB: Add Packed Signed Byte Integers with Signed Saturation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPADDSB m256 ymm ymm
|
|
// VPADDSB ymm ymm ymm
|
|
// VPADDSB m128 xmm xmm
|
|
// VPADDSB xmm xmm xmm
|
|
// VPADDSB m128 xmm k xmm
|
|
// VPADDSB m256 ymm k ymm
|
|
// VPADDSB xmm xmm k xmm
|
|
// VPADDSB ymm ymm k ymm
|
|
// VPADDSB m512 zmm k zmm
|
|
// VPADDSB m512 zmm zmm
|
|
// VPADDSB zmm zmm k zmm
|
|
// VPADDSB zmm zmm zmm
|
|
func VPADDSB(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPADDSB.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPADDSB_Z: Add Packed Signed Byte Integers with Signed Saturation (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPADDSB.Z m128 xmm k xmm
|
|
// VPADDSB.Z m256 ymm k ymm
|
|
// VPADDSB.Z xmm xmm k xmm
|
|
// VPADDSB.Z ymm ymm k ymm
|
|
// VPADDSB.Z m512 zmm k zmm
|
|
// VPADDSB.Z zmm zmm k zmm
|
|
func VPADDSB_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPADDSB.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPADDSW: Add Packed Signed Word Integers with Signed Saturation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPADDSW m256 ymm ymm
|
|
// VPADDSW ymm ymm ymm
|
|
// VPADDSW m128 xmm xmm
|
|
// VPADDSW xmm xmm xmm
|
|
// VPADDSW m128 xmm k xmm
|
|
// VPADDSW m256 ymm k ymm
|
|
// VPADDSW xmm xmm k xmm
|
|
// VPADDSW ymm ymm k ymm
|
|
// VPADDSW m512 zmm k zmm
|
|
// VPADDSW m512 zmm zmm
|
|
// VPADDSW zmm zmm k zmm
|
|
// VPADDSW zmm zmm zmm
|
|
func VPADDSW(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPADDSW.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPADDSW_Z: Add Packed Signed Word Integers with Signed Saturation (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPADDSW.Z m128 xmm k xmm
|
|
// VPADDSW.Z m256 ymm k ymm
|
|
// VPADDSW.Z xmm xmm k xmm
|
|
// VPADDSW.Z ymm ymm k ymm
|
|
// VPADDSW.Z m512 zmm k zmm
|
|
// VPADDSW.Z zmm zmm k zmm
|
|
func VPADDSW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPADDSW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPADDUSB: Add Packed Unsigned Byte Integers with Unsigned Saturation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPADDUSB m256 ymm ymm
|
|
// VPADDUSB ymm ymm ymm
|
|
// VPADDUSB m128 xmm xmm
|
|
// VPADDUSB xmm xmm xmm
|
|
// VPADDUSB m128 xmm k xmm
|
|
// VPADDUSB m256 ymm k ymm
|
|
// VPADDUSB xmm xmm k xmm
|
|
// VPADDUSB ymm ymm k ymm
|
|
// VPADDUSB m512 zmm k zmm
|
|
// VPADDUSB m512 zmm zmm
|
|
// VPADDUSB zmm zmm k zmm
|
|
// VPADDUSB zmm zmm zmm
|
|
func VPADDUSB(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPADDUSB.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPADDUSB_Z: Add Packed Unsigned Byte Integers with Unsigned Saturation (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPADDUSB.Z m128 xmm k xmm
|
|
// VPADDUSB.Z m256 ymm k ymm
|
|
// VPADDUSB.Z xmm xmm k xmm
|
|
// VPADDUSB.Z ymm ymm k ymm
|
|
// VPADDUSB.Z m512 zmm k zmm
|
|
// VPADDUSB.Z zmm zmm k zmm
|
|
func VPADDUSB_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPADDUSB.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPADDUSW: Add Packed Unsigned Word Integers with Unsigned Saturation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPADDUSW m256 ymm ymm
|
|
// VPADDUSW ymm ymm ymm
|
|
// VPADDUSW m128 xmm xmm
|
|
// VPADDUSW xmm xmm xmm
|
|
// VPADDUSW m128 xmm k xmm
|
|
// VPADDUSW m256 ymm k ymm
|
|
// VPADDUSW xmm xmm k xmm
|
|
// VPADDUSW ymm ymm k ymm
|
|
// VPADDUSW m512 zmm k zmm
|
|
// VPADDUSW m512 zmm zmm
|
|
// VPADDUSW zmm zmm k zmm
|
|
// VPADDUSW zmm zmm zmm
|
|
func VPADDUSW(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPADDUSW.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPADDUSW_Z: Add Packed Unsigned Word Integers with Unsigned Saturation (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPADDUSW.Z m128 xmm k xmm
|
|
// VPADDUSW.Z m256 ymm k ymm
|
|
// VPADDUSW.Z xmm xmm k xmm
|
|
// VPADDUSW.Z ymm ymm k ymm
|
|
// VPADDUSW.Z m512 zmm k zmm
|
|
// VPADDUSW.Z zmm zmm k zmm
|
|
func VPADDUSW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPADDUSW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPADDW: Add Packed Word Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPADDW m256 ymm ymm
|
|
// VPADDW ymm ymm ymm
|
|
// VPADDW m128 xmm xmm
|
|
// VPADDW xmm xmm xmm
|
|
// VPADDW m128 xmm k xmm
|
|
// VPADDW m256 ymm k ymm
|
|
// VPADDW xmm xmm k xmm
|
|
// VPADDW ymm ymm k ymm
|
|
// VPADDW m512 zmm k zmm
|
|
// VPADDW m512 zmm zmm
|
|
// VPADDW zmm zmm k zmm
|
|
// VPADDW zmm zmm zmm
|
|
func VPADDW(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPADDW.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPADDW_Z: Add Packed Word Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPADDW.Z m128 xmm k xmm
|
|
// VPADDW.Z m256 ymm k ymm
|
|
// VPADDW.Z xmm xmm k xmm
|
|
// VPADDW.Z ymm ymm k ymm
|
|
// VPADDW.Z m512 zmm k zmm
|
|
// VPADDW.Z zmm zmm k zmm
|
|
func VPADDW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPADDW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPALIGNR: Packed Align Right.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPALIGNR imm8 m256 ymm ymm
|
|
// VPALIGNR imm8 ymm ymm ymm
|
|
// VPALIGNR imm8 m128 xmm xmm
|
|
// VPALIGNR imm8 xmm xmm xmm
|
|
// VPALIGNR imm8 m128 xmm k xmm
|
|
// VPALIGNR imm8 m256 ymm k ymm
|
|
// VPALIGNR imm8 xmm xmm k xmm
|
|
// VPALIGNR imm8 ymm ymm k ymm
|
|
// VPALIGNR imm8 m512 zmm k zmm
|
|
// VPALIGNR imm8 m512 zmm zmm
|
|
// VPALIGNR imm8 zmm zmm k zmm
|
|
// VPALIGNR imm8 zmm zmm zmm
|
|
func VPALIGNR(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPALIGNR.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPALIGNR_Z: Packed Align Right (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPALIGNR.Z imm8 m128 xmm k xmm
|
|
// VPALIGNR.Z imm8 m256 ymm k ymm
|
|
// VPALIGNR.Z imm8 xmm xmm k xmm
|
|
// VPALIGNR.Z imm8 ymm ymm k ymm
|
|
// VPALIGNR.Z imm8 m512 zmm k zmm
|
|
// VPALIGNR.Z imm8 zmm zmm k zmm
|
|
func VPALIGNR_Z(i, mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPALIGNR.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPAND: Packed Bitwise Logical AND.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPAND m256 ymm ymm
|
|
// VPAND ymm ymm ymm
|
|
// VPAND m128 xmm xmm
|
|
// VPAND xmm xmm xmm
|
|
func VPAND(mxy, xy, xy1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPAND.Forms(), sffxs{}, []operand.Op{mxy, xy, xy1})
|
|
}
|
|
|
|
// VPANDD: Bitwise Logical AND of Packed Doubleword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPANDD m128 xmm k xmm
|
|
// VPANDD m128 xmm xmm
|
|
// VPANDD m256 ymm k ymm
|
|
// VPANDD m256 ymm ymm
|
|
// VPANDD xmm xmm k xmm
|
|
// VPANDD xmm xmm xmm
|
|
// VPANDD ymm ymm k ymm
|
|
// VPANDD ymm ymm ymm
|
|
// VPANDD m512 zmm k zmm
|
|
// VPANDD m512 zmm zmm
|
|
// VPANDD zmm zmm k zmm
|
|
// VPANDD zmm zmm zmm
|
|
func VPANDD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPANDD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPANDD_BCST: Bitwise Logical AND of Packed Doubleword Integers (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPANDD.BCST m32 xmm k xmm
|
|
// VPANDD.BCST m32 xmm xmm
|
|
// VPANDD.BCST m32 ymm k ymm
|
|
// VPANDD.BCST m32 ymm ymm
|
|
// VPANDD.BCST m32 zmm k zmm
|
|
// VPANDD.BCST m32 zmm zmm
|
|
func VPANDD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPANDD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPANDD_BCST_Z: Bitwise Logical AND of Packed Doubleword Integers (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPANDD.BCST.Z m32 xmm k xmm
|
|
// VPANDD.BCST.Z m32 ymm k ymm
|
|
// VPANDD.BCST.Z m32 zmm k zmm
|
|
func VPANDD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPANDD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPANDD_Z: Bitwise Logical AND of Packed Doubleword Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPANDD.Z m128 xmm k xmm
|
|
// VPANDD.Z m256 ymm k ymm
|
|
// VPANDD.Z xmm xmm k xmm
|
|
// VPANDD.Z ymm ymm k ymm
|
|
// VPANDD.Z m512 zmm k zmm
|
|
// VPANDD.Z zmm zmm k zmm
|
|
func VPANDD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPANDD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPANDN: Packed Bitwise Logical AND NOT.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPANDN m256 ymm ymm
|
|
// VPANDN ymm ymm ymm
|
|
// VPANDN m128 xmm xmm
|
|
// VPANDN xmm xmm xmm
|
|
func VPANDN(mxy, xy, xy1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPANDN.Forms(), sffxs{}, []operand.Op{mxy, xy, xy1})
|
|
}
|
|
|
|
// VPANDND: Bitwise Logical AND NOT of Packed Doubleword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPANDND m128 xmm k xmm
|
|
// VPANDND m128 xmm xmm
|
|
// VPANDND m256 ymm k ymm
|
|
// VPANDND m256 ymm ymm
|
|
// VPANDND xmm xmm k xmm
|
|
// VPANDND xmm xmm xmm
|
|
// VPANDND ymm ymm k ymm
|
|
// VPANDND ymm ymm ymm
|
|
// VPANDND m512 zmm k zmm
|
|
// VPANDND m512 zmm zmm
|
|
// VPANDND zmm zmm k zmm
|
|
// VPANDND zmm zmm zmm
|
|
func VPANDND(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPANDND.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPANDND_BCST: Bitwise Logical AND NOT of Packed Doubleword Integers (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPANDND.BCST m32 xmm k xmm
|
|
// VPANDND.BCST m32 xmm xmm
|
|
// VPANDND.BCST m32 ymm k ymm
|
|
// VPANDND.BCST m32 ymm ymm
|
|
// VPANDND.BCST m32 zmm k zmm
|
|
// VPANDND.BCST m32 zmm zmm
|
|
func VPANDND_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPANDND.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPANDND_BCST_Z: Bitwise Logical AND NOT of Packed Doubleword Integers (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPANDND.BCST.Z m32 xmm k xmm
|
|
// VPANDND.BCST.Z m32 ymm k ymm
|
|
// VPANDND.BCST.Z m32 zmm k zmm
|
|
func VPANDND_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPANDND.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPANDND_Z: Bitwise Logical AND NOT of Packed Doubleword Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPANDND.Z m128 xmm k xmm
|
|
// VPANDND.Z m256 ymm k ymm
|
|
// VPANDND.Z xmm xmm k xmm
|
|
// VPANDND.Z ymm ymm k ymm
|
|
// VPANDND.Z m512 zmm k zmm
|
|
// VPANDND.Z zmm zmm k zmm
|
|
func VPANDND_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPANDND.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPANDNQ: Bitwise Logical AND NOT of Packed Quadword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPANDNQ m128 xmm k xmm
|
|
// VPANDNQ m128 xmm xmm
|
|
// VPANDNQ m256 ymm k ymm
|
|
// VPANDNQ m256 ymm ymm
|
|
// VPANDNQ xmm xmm k xmm
|
|
// VPANDNQ xmm xmm xmm
|
|
// VPANDNQ ymm ymm k ymm
|
|
// VPANDNQ ymm ymm ymm
|
|
// VPANDNQ m512 zmm k zmm
|
|
// VPANDNQ m512 zmm zmm
|
|
// VPANDNQ zmm zmm k zmm
|
|
// VPANDNQ zmm zmm zmm
|
|
func VPANDNQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPANDNQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPANDNQ_BCST: Bitwise Logical AND NOT of Packed Quadword Integers (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPANDNQ.BCST m64 xmm k xmm
|
|
// VPANDNQ.BCST m64 xmm xmm
|
|
// VPANDNQ.BCST m64 ymm k ymm
|
|
// VPANDNQ.BCST m64 ymm ymm
|
|
// VPANDNQ.BCST m64 zmm k zmm
|
|
// VPANDNQ.BCST m64 zmm zmm
|
|
func VPANDNQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPANDNQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPANDNQ_BCST_Z: Bitwise Logical AND NOT of Packed Quadword Integers (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPANDNQ.BCST.Z m64 xmm k xmm
|
|
// VPANDNQ.BCST.Z m64 ymm k ymm
|
|
// VPANDNQ.BCST.Z m64 zmm k zmm
|
|
func VPANDNQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPANDNQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPANDNQ_Z: Bitwise Logical AND NOT of Packed Quadword Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPANDNQ.Z m128 xmm k xmm
|
|
// VPANDNQ.Z m256 ymm k ymm
|
|
// VPANDNQ.Z xmm xmm k xmm
|
|
// VPANDNQ.Z ymm ymm k ymm
|
|
// VPANDNQ.Z m512 zmm k zmm
|
|
// VPANDNQ.Z zmm zmm k zmm
|
|
func VPANDNQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPANDNQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPANDQ: Bitwise Logical AND of Packed Quadword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPANDQ m128 xmm k xmm
|
|
// VPANDQ m128 xmm xmm
|
|
// VPANDQ m256 ymm k ymm
|
|
// VPANDQ m256 ymm ymm
|
|
// VPANDQ xmm xmm k xmm
|
|
// VPANDQ xmm xmm xmm
|
|
// VPANDQ ymm ymm k ymm
|
|
// VPANDQ ymm ymm ymm
|
|
// VPANDQ m512 zmm k zmm
|
|
// VPANDQ m512 zmm zmm
|
|
// VPANDQ zmm zmm k zmm
|
|
// VPANDQ zmm zmm zmm
|
|
func VPANDQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPANDQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPANDQ_BCST: Bitwise Logical AND of Packed Quadword Integers (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPANDQ.BCST m64 xmm k xmm
|
|
// VPANDQ.BCST m64 xmm xmm
|
|
// VPANDQ.BCST m64 ymm k ymm
|
|
// VPANDQ.BCST m64 ymm ymm
|
|
// VPANDQ.BCST m64 zmm k zmm
|
|
// VPANDQ.BCST m64 zmm zmm
|
|
func VPANDQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPANDQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPANDQ_BCST_Z: Bitwise Logical AND of Packed Quadword Integers (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPANDQ.BCST.Z m64 xmm k xmm
|
|
// VPANDQ.BCST.Z m64 ymm k ymm
|
|
// VPANDQ.BCST.Z m64 zmm k zmm
|
|
func VPANDQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPANDQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPANDQ_Z: Bitwise Logical AND of Packed Quadword Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPANDQ.Z m128 xmm k xmm
|
|
// VPANDQ.Z m256 ymm k ymm
|
|
// VPANDQ.Z xmm xmm k xmm
|
|
// VPANDQ.Z ymm ymm k ymm
|
|
// VPANDQ.Z m512 zmm k zmm
|
|
// VPANDQ.Z zmm zmm k zmm
|
|
func VPANDQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPANDQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPAVGB: Average Packed Byte Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPAVGB m256 ymm ymm
|
|
// VPAVGB ymm ymm ymm
|
|
// VPAVGB m128 xmm xmm
|
|
// VPAVGB xmm xmm xmm
|
|
// VPAVGB m128 xmm k xmm
|
|
// VPAVGB m256 ymm k ymm
|
|
// VPAVGB xmm xmm k xmm
|
|
// VPAVGB ymm ymm k ymm
|
|
// VPAVGB m512 zmm k zmm
|
|
// VPAVGB m512 zmm zmm
|
|
// VPAVGB zmm zmm k zmm
|
|
// VPAVGB zmm zmm zmm
|
|
func VPAVGB(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPAVGB.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPAVGB_Z: Average Packed Byte Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPAVGB.Z m128 xmm k xmm
|
|
// VPAVGB.Z m256 ymm k ymm
|
|
// VPAVGB.Z xmm xmm k xmm
|
|
// VPAVGB.Z ymm ymm k ymm
|
|
// VPAVGB.Z m512 zmm k zmm
|
|
// VPAVGB.Z zmm zmm k zmm
|
|
func VPAVGB_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPAVGB.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPAVGW: Average Packed Word Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPAVGW m256 ymm ymm
|
|
// VPAVGW ymm ymm ymm
|
|
// VPAVGW m128 xmm xmm
|
|
// VPAVGW xmm xmm xmm
|
|
// VPAVGW m128 xmm k xmm
|
|
// VPAVGW m256 ymm k ymm
|
|
// VPAVGW xmm xmm k xmm
|
|
// VPAVGW ymm ymm k ymm
|
|
// VPAVGW m512 zmm k zmm
|
|
// VPAVGW m512 zmm zmm
|
|
// VPAVGW zmm zmm k zmm
|
|
// VPAVGW zmm zmm zmm
|
|
func VPAVGW(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPAVGW.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPAVGW_Z: Average Packed Word Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPAVGW.Z m128 xmm k xmm
|
|
// VPAVGW.Z m256 ymm k ymm
|
|
// VPAVGW.Z xmm xmm k xmm
|
|
// VPAVGW.Z ymm ymm k ymm
|
|
// VPAVGW.Z m512 zmm k zmm
|
|
// VPAVGW.Z zmm zmm k zmm
|
|
func VPAVGW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPAVGW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPBLENDD: Blend Packed Doublewords.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPBLENDD imm8 m128 xmm xmm
|
|
// VPBLENDD imm8 m256 ymm ymm
|
|
// VPBLENDD imm8 xmm xmm xmm
|
|
// VPBLENDD imm8 ymm ymm ymm
|
|
func VPBLENDD(i, mxy, xy, xy1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPBLENDD.Forms(), sffxs{}, []operand.Op{i, mxy, xy, xy1})
|
|
}
|
|
|
|
// VPBLENDMB: Blend Byte Vectors Using an OpMask Control.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPBLENDMB m128 xmm k xmm
|
|
// VPBLENDMB m128 xmm xmm
|
|
// VPBLENDMB m256 ymm k ymm
|
|
// VPBLENDMB m256 ymm ymm
|
|
// VPBLENDMB xmm xmm k xmm
|
|
// VPBLENDMB xmm xmm xmm
|
|
// VPBLENDMB ymm ymm k ymm
|
|
// VPBLENDMB ymm ymm ymm
|
|
// VPBLENDMB m512 zmm k zmm
|
|
// VPBLENDMB m512 zmm zmm
|
|
// VPBLENDMB zmm zmm k zmm
|
|
// VPBLENDMB zmm zmm zmm
|
|
func VPBLENDMB(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPBLENDMB.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPBLENDMB_Z: Blend Byte Vectors Using an OpMask Control (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPBLENDMB.Z m128 xmm k xmm
|
|
// VPBLENDMB.Z m256 ymm k ymm
|
|
// VPBLENDMB.Z xmm xmm k xmm
|
|
// VPBLENDMB.Z ymm ymm k ymm
|
|
// VPBLENDMB.Z m512 zmm k zmm
|
|
// VPBLENDMB.Z zmm zmm k zmm
|
|
func VPBLENDMB_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPBLENDMB.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPBLENDMD: Blend Doubleword Vectors Using an OpMask Control.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPBLENDMD m128 xmm k xmm
|
|
// VPBLENDMD m128 xmm xmm
|
|
// VPBLENDMD m256 ymm k ymm
|
|
// VPBLENDMD m256 ymm ymm
|
|
// VPBLENDMD xmm xmm k xmm
|
|
// VPBLENDMD xmm xmm xmm
|
|
// VPBLENDMD ymm ymm k ymm
|
|
// VPBLENDMD ymm ymm ymm
|
|
// VPBLENDMD m512 zmm k zmm
|
|
// VPBLENDMD m512 zmm zmm
|
|
// VPBLENDMD zmm zmm k zmm
|
|
// VPBLENDMD zmm zmm zmm
|
|
func VPBLENDMD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPBLENDMD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPBLENDMD_BCST: Blend Doubleword Vectors Using an OpMask Control (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPBLENDMD.BCST m32 xmm k xmm
|
|
// VPBLENDMD.BCST m32 xmm xmm
|
|
// VPBLENDMD.BCST m32 ymm k ymm
|
|
// VPBLENDMD.BCST m32 ymm ymm
|
|
// VPBLENDMD.BCST m32 zmm k zmm
|
|
// VPBLENDMD.BCST m32 zmm zmm
|
|
func VPBLENDMD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPBLENDMD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPBLENDMD_BCST_Z: Blend Doubleword Vectors Using an OpMask Control (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPBLENDMD.BCST.Z m32 xmm k xmm
|
|
// VPBLENDMD.BCST.Z m32 ymm k ymm
|
|
// VPBLENDMD.BCST.Z m32 zmm k zmm
|
|
func VPBLENDMD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPBLENDMD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPBLENDMD_Z: Blend Doubleword Vectors Using an OpMask Control (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPBLENDMD.Z m128 xmm k xmm
|
|
// VPBLENDMD.Z m256 ymm k ymm
|
|
// VPBLENDMD.Z xmm xmm k xmm
|
|
// VPBLENDMD.Z ymm ymm k ymm
|
|
// VPBLENDMD.Z m512 zmm k zmm
|
|
// VPBLENDMD.Z zmm zmm k zmm
|
|
func VPBLENDMD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPBLENDMD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPBLENDMQ: Blend Quadword Vectors Using an OpMask Control.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPBLENDMQ m128 xmm k xmm
|
|
// VPBLENDMQ m128 xmm xmm
|
|
// VPBLENDMQ m256 ymm k ymm
|
|
// VPBLENDMQ m256 ymm ymm
|
|
// VPBLENDMQ xmm xmm k xmm
|
|
// VPBLENDMQ xmm xmm xmm
|
|
// VPBLENDMQ ymm ymm k ymm
|
|
// VPBLENDMQ ymm ymm ymm
|
|
// VPBLENDMQ m512 zmm k zmm
|
|
// VPBLENDMQ m512 zmm zmm
|
|
// VPBLENDMQ zmm zmm k zmm
|
|
// VPBLENDMQ zmm zmm zmm
|
|
func VPBLENDMQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPBLENDMQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPBLENDMQ_BCST: Blend Quadword Vectors Using an OpMask Control (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPBLENDMQ.BCST m64 xmm k xmm
|
|
// VPBLENDMQ.BCST m64 xmm xmm
|
|
// VPBLENDMQ.BCST m64 ymm k ymm
|
|
// VPBLENDMQ.BCST m64 ymm ymm
|
|
// VPBLENDMQ.BCST m64 zmm k zmm
|
|
// VPBLENDMQ.BCST m64 zmm zmm
|
|
func VPBLENDMQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPBLENDMQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPBLENDMQ_BCST_Z: Blend Quadword Vectors Using an OpMask Control (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPBLENDMQ.BCST.Z m64 xmm k xmm
|
|
// VPBLENDMQ.BCST.Z m64 ymm k ymm
|
|
// VPBLENDMQ.BCST.Z m64 zmm k zmm
|
|
func VPBLENDMQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPBLENDMQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPBLENDMQ_Z: Blend Quadword Vectors Using an OpMask Control (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPBLENDMQ.Z m128 xmm k xmm
|
|
// VPBLENDMQ.Z m256 ymm k ymm
|
|
// VPBLENDMQ.Z xmm xmm k xmm
|
|
// VPBLENDMQ.Z ymm ymm k ymm
|
|
// VPBLENDMQ.Z m512 zmm k zmm
|
|
// VPBLENDMQ.Z zmm zmm k zmm
|
|
func VPBLENDMQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPBLENDMQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPBLENDMW: Blend Word Vectors Using an OpMask Control.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPBLENDMW m128 xmm k xmm
|
|
// VPBLENDMW m128 xmm xmm
|
|
// VPBLENDMW m256 ymm k ymm
|
|
// VPBLENDMW m256 ymm ymm
|
|
// VPBLENDMW xmm xmm k xmm
|
|
// VPBLENDMW xmm xmm xmm
|
|
// VPBLENDMW ymm ymm k ymm
|
|
// VPBLENDMW ymm ymm ymm
|
|
// VPBLENDMW m512 zmm k zmm
|
|
// VPBLENDMW m512 zmm zmm
|
|
// VPBLENDMW zmm zmm k zmm
|
|
// VPBLENDMW zmm zmm zmm
|
|
func VPBLENDMW(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPBLENDMW.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPBLENDMW_Z: Blend Word Vectors Using an OpMask Control (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPBLENDMW.Z m128 xmm k xmm
|
|
// VPBLENDMW.Z m256 ymm k ymm
|
|
// VPBLENDMW.Z xmm xmm k xmm
|
|
// VPBLENDMW.Z ymm ymm k ymm
|
|
// VPBLENDMW.Z m512 zmm k zmm
|
|
// VPBLENDMW.Z zmm zmm k zmm
|
|
func VPBLENDMW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPBLENDMW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPBLENDVB: Variable Blend Packed Bytes.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPBLENDVB ymm m256 ymm ymm
|
|
// VPBLENDVB ymm ymm ymm ymm
|
|
// VPBLENDVB xmm m128 xmm xmm
|
|
// VPBLENDVB xmm xmm xmm xmm
|
|
func VPBLENDVB(xy, mxy, xy1, xy2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPBLENDVB.Forms(), sffxs{}, []operand.Op{xy, mxy, xy1, xy2})
|
|
}
|
|
|
|
// VPBLENDW: Blend Packed Words.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPBLENDW imm8 m256 ymm ymm
|
|
// VPBLENDW imm8 ymm ymm ymm
|
|
// VPBLENDW imm8 m128 xmm xmm
|
|
// VPBLENDW imm8 xmm xmm xmm
|
|
func VPBLENDW(i, mxy, xy, xy1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPBLENDW.Forms(), sffxs{}, []operand.Op{i, mxy, xy, xy1})
|
|
}
|
|
|
|
// VPBROADCASTB: Broadcast Byte Integer.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPBROADCASTB m8 xmm
|
|
// VPBROADCASTB m8 ymm
|
|
// VPBROADCASTB xmm xmm
|
|
// VPBROADCASTB xmm ymm
|
|
// VPBROADCASTB m8 k xmm
|
|
// VPBROADCASTB m8 k ymm
|
|
// VPBROADCASTB r32 k xmm
|
|
// VPBROADCASTB r32 k ymm
|
|
// VPBROADCASTB r32 xmm
|
|
// VPBROADCASTB r32 ymm
|
|
// VPBROADCASTB xmm k xmm
|
|
// VPBROADCASTB xmm k ymm
|
|
// VPBROADCASTB m8 k zmm
|
|
// VPBROADCASTB m8 zmm
|
|
// VPBROADCASTB r32 k zmm
|
|
// VPBROADCASTB r32 zmm
|
|
// VPBROADCASTB xmm k zmm
|
|
// VPBROADCASTB xmm zmm
|
|
func VPBROADCASTB(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPBROADCASTB.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPBROADCASTB_Z: Broadcast Byte Integer (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPBROADCASTB.Z m8 k xmm
|
|
// VPBROADCASTB.Z m8 k ymm
|
|
// VPBROADCASTB.Z r32 k xmm
|
|
// VPBROADCASTB.Z r32 k ymm
|
|
// VPBROADCASTB.Z xmm k xmm
|
|
// VPBROADCASTB.Z xmm k ymm
|
|
// VPBROADCASTB.Z m8 k zmm
|
|
// VPBROADCASTB.Z r32 k zmm
|
|
// VPBROADCASTB.Z xmm k zmm
|
|
func VPBROADCASTB_Z(mrx, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPBROADCASTB.Forms(), sffxs{sffxZ}, []operand.Op{mrx, k, xyz})
|
|
}
|
|
|
|
// VPBROADCASTD: Broadcast Doubleword Integer.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPBROADCASTD m32 xmm
|
|
// VPBROADCASTD m32 ymm
|
|
// VPBROADCASTD xmm xmm
|
|
// VPBROADCASTD xmm ymm
|
|
// VPBROADCASTD m32 k xmm
|
|
// VPBROADCASTD m32 k ymm
|
|
// VPBROADCASTD r32 k xmm
|
|
// VPBROADCASTD r32 k ymm
|
|
// VPBROADCASTD r32 xmm
|
|
// VPBROADCASTD r32 ymm
|
|
// VPBROADCASTD xmm k xmm
|
|
// VPBROADCASTD xmm k ymm
|
|
// VPBROADCASTD m32 k zmm
|
|
// VPBROADCASTD m32 zmm
|
|
// VPBROADCASTD r32 k zmm
|
|
// VPBROADCASTD r32 zmm
|
|
// VPBROADCASTD xmm k zmm
|
|
// VPBROADCASTD xmm zmm
|
|
func VPBROADCASTD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPBROADCASTD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPBROADCASTD_Z: Broadcast Doubleword Integer (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPBROADCASTD.Z m32 k xmm
|
|
// VPBROADCASTD.Z m32 k ymm
|
|
// VPBROADCASTD.Z r32 k xmm
|
|
// VPBROADCASTD.Z r32 k ymm
|
|
// VPBROADCASTD.Z xmm k xmm
|
|
// VPBROADCASTD.Z xmm k ymm
|
|
// VPBROADCASTD.Z m32 k zmm
|
|
// VPBROADCASTD.Z r32 k zmm
|
|
// VPBROADCASTD.Z xmm k zmm
|
|
func VPBROADCASTD_Z(mrx, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPBROADCASTD.Forms(), sffxs{sffxZ}, []operand.Op{mrx, k, xyz})
|
|
}
|
|
|
|
// VPBROADCASTMB2Q: Broadcast Low Byte of Mask Register to Packed Quadword Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPBROADCASTMB2Q k xmm
|
|
// VPBROADCASTMB2Q k ymm
|
|
// VPBROADCASTMB2Q k zmm
|
|
func VPBROADCASTMB2Q(k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPBROADCASTMB2Q.Forms(), sffxs{}, []operand.Op{k, xyz})
|
|
}
|
|
|
|
// VPBROADCASTMW2D: Broadcast Low Word of Mask Register to Packed Doubleword Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPBROADCASTMW2D k xmm
|
|
// VPBROADCASTMW2D k ymm
|
|
// VPBROADCASTMW2D k zmm
|
|
func VPBROADCASTMW2D(k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPBROADCASTMW2D.Forms(), sffxs{}, []operand.Op{k, xyz})
|
|
}
|
|
|
|
// VPBROADCASTQ: Broadcast Quadword Integer.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPBROADCASTQ m64 xmm
|
|
// VPBROADCASTQ m64 ymm
|
|
// VPBROADCASTQ xmm xmm
|
|
// VPBROADCASTQ xmm ymm
|
|
// VPBROADCASTQ m64 k xmm
|
|
// VPBROADCASTQ m64 k ymm
|
|
// VPBROADCASTQ r64 k xmm
|
|
// VPBROADCASTQ r64 k ymm
|
|
// VPBROADCASTQ r64 xmm
|
|
// VPBROADCASTQ r64 ymm
|
|
// VPBROADCASTQ xmm k xmm
|
|
// VPBROADCASTQ xmm k ymm
|
|
// VPBROADCASTQ m64 k zmm
|
|
// VPBROADCASTQ m64 zmm
|
|
// VPBROADCASTQ r64 k zmm
|
|
// VPBROADCASTQ r64 zmm
|
|
// VPBROADCASTQ xmm k zmm
|
|
// VPBROADCASTQ xmm zmm
|
|
func VPBROADCASTQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPBROADCASTQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPBROADCASTQ_Z: Broadcast Quadword Integer (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPBROADCASTQ.Z m64 k xmm
|
|
// VPBROADCASTQ.Z m64 k ymm
|
|
// VPBROADCASTQ.Z r64 k xmm
|
|
// VPBROADCASTQ.Z r64 k ymm
|
|
// VPBROADCASTQ.Z xmm k xmm
|
|
// VPBROADCASTQ.Z xmm k ymm
|
|
// VPBROADCASTQ.Z m64 k zmm
|
|
// VPBROADCASTQ.Z r64 k zmm
|
|
// VPBROADCASTQ.Z xmm k zmm
|
|
func VPBROADCASTQ_Z(mrx, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPBROADCASTQ.Forms(), sffxs{sffxZ}, []operand.Op{mrx, k, xyz})
|
|
}
|
|
|
|
// VPBROADCASTW: Broadcast Word Integer.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPBROADCASTW m16 xmm
|
|
// VPBROADCASTW m16 ymm
|
|
// VPBROADCASTW xmm xmm
|
|
// VPBROADCASTW xmm ymm
|
|
// VPBROADCASTW m16 k xmm
|
|
// VPBROADCASTW m16 k ymm
|
|
// VPBROADCASTW r32 k xmm
|
|
// VPBROADCASTW r32 k ymm
|
|
// VPBROADCASTW r32 xmm
|
|
// VPBROADCASTW r32 ymm
|
|
// VPBROADCASTW xmm k xmm
|
|
// VPBROADCASTW xmm k ymm
|
|
// VPBROADCASTW m16 k zmm
|
|
// VPBROADCASTW m16 zmm
|
|
// VPBROADCASTW r32 k zmm
|
|
// VPBROADCASTW r32 zmm
|
|
// VPBROADCASTW xmm k zmm
|
|
// VPBROADCASTW xmm zmm
|
|
func VPBROADCASTW(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPBROADCASTW.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPBROADCASTW_Z: Broadcast Word Integer (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPBROADCASTW.Z m16 k xmm
|
|
// VPBROADCASTW.Z m16 k ymm
|
|
// VPBROADCASTW.Z r32 k xmm
|
|
// VPBROADCASTW.Z r32 k ymm
|
|
// VPBROADCASTW.Z xmm k xmm
|
|
// VPBROADCASTW.Z xmm k ymm
|
|
// VPBROADCASTW.Z m16 k zmm
|
|
// VPBROADCASTW.Z r32 k zmm
|
|
// VPBROADCASTW.Z xmm k zmm
|
|
func VPBROADCASTW_Z(mrx, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPBROADCASTW.Forms(), sffxs{sffxZ}, []operand.Op{mrx, k, xyz})
|
|
}
|
|
|
|
// VPCLMULQDQ: Carry-Less Quadword Multiplication.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPCLMULQDQ imm8 m128 xmm xmm
|
|
// VPCLMULQDQ imm8 xmm xmm xmm
|
|
// VPCLMULQDQ imm8 m256 ymm ymm
|
|
// VPCLMULQDQ imm8 ymm ymm ymm
|
|
// VPCLMULQDQ imm8 m512 zmm zmm
|
|
// VPCLMULQDQ imm8 zmm zmm zmm
|
|
func VPCLMULQDQ(i, mxyz, xyz, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPCLMULQDQ.Forms(), sffxs{}, []operand.Op{i, mxyz, xyz, xyz1})
|
|
}
|
|
|
|
// VPCMPB: Compare Packed Signed Byte Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPCMPB imm8 m128 xmm k k
|
|
// VPCMPB imm8 m128 xmm k
|
|
// VPCMPB imm8 m256 ymm k k
|
|
// VPCMPB imm8 m256 ymm k
|
|
// VPCMPB imm8 xmm xmm k k
|
|
// VPCMPB imm8 xmm xmm k
|
|
// VPCMPB imm8 ymm ymm k k
|
|
// VPCMPB imm8 ymm ymm k
|
|
// VPCMPB imm8 m512 zmm k k
|
|
// VPCMPB imm8 m512 zmm k
|
|
// VPCMPB imm8 zmm zmm k k
|
|
// VPCMPB imm8 zmm zmm k
|
|
func VPCMPB(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPCMPB.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPCMPD: Compare Packed Signed Doubleword Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPCMPD imm8 m128 xmm k k
|
|
// VPCMPD imm8 m128 xmm k
|
|
// VPCMPD imm8 m256 ymm k k
|
|
// VPCMPD imm8 m256 ymm k
|
|
// VPCMPD imm8 xmm xmm k k
|
|
// VPCMPD imm8 xmm xmm k
|
|
// VPCMPD imm8 ymm ymm k k
|
|
// VPCMPD imm8 ymm ymm k
|
|
// VPCMPD imm8 m512 zmm k k
|
|
// VPCMPD imm8 m512 zmm k
|
|
// VPCMPD imm8 zmm zmm k k
|
|
// VPCMPD imm8 zmm zmm k
|
|
func VPCMPD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPCMPD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPCMPD_BCST: Compare Packed Signed Doubleword Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPCMPD.BCST imm8 m32 xmm k k
|
|
// VPCMPD.BCST imm8 m32 xmm k
|
|
// VPCMPD.BCST imm8 m32 ymm k k
|
|
// VPCMPD.BCST imm8 m32 ymm k
|
|
// VPCMPD.BCST imm8 m32 zmm k k
|
|
// VPCMPD.BCST imm8 m32 zmm k
|
|
func VPCMPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPCMPD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPCMPEQB: Compare Packed Byte Data for Equality.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPCMPEQB m256 ymm ymm
|
|
// VPCMPEQB ymm ymm ymm
|
|
// VPCMPEQB m128 xmm xmm
|
|
// VPCMPEQB xmm xmm xmm
|
|
// VPCMPEQB m128 xmm k k
|
|
// VPCMPEQB m128 xmm k
|
|
// VPCMPEQB m256 ymm k k
|
|
// VPCMPEQB m256 ymm k
|
|
// VPCMPEQB xmm xmm k k
|
|
// VPCMPEQB xmm xmm k
|
|
// VPCMPEQB ymm ymm k k
|
|
// VPCMPEQB ymm ymm k
|
|
// VPCMPEQB m512 zmm k k
|
|
// VPCMPEQB m512 zmm k
|
|
// VPCMPEQB zmm zmm k k
|
|
// VPCMPEQB zmm zmm k
|
|
func VPCMPEQB(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPCMPEQB.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPCMPEQD: Compare Packed Doubleword Data for Equality.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPCMPEQD m256 ymm ymm
|
|
// VPCMPEQD ymm ymm ymm
|
|
// VPCMPEQD m128 xmm xmm
|
|
// VPCMPEQD xmm xmm xmm
|
|
// VPCMPEQD m128 xmm k k
|
|
// VPCMPEQD m128 xmm k
|
|
// VPCMPEQD m256 ymm k k
|
|
// VPCMPEQD m256 ymm k
|
|
// VPCMPEQD xmm xmm k k
|
|
// VPCMPEQD xmm xmm k
|
|
// VPCMPEQD ymm ymm k k
|
|
// VPCMPEQD ymm ymm k
|
|
// VPCMPEQD m512 zmm k k
|
|
// VPCMPEQD m512 zmm k
|
|
// VPCMPEQD zmm zmm k k
|
|
// VPCMPEQD zmm zmm k
|
|
func VPCMPEQD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPCMPEQD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPCMPEQD_BCST: Compare Packed Doubleword Data for Equality (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPCMPEQD.BCST m32 xmm k k
|
|
// VPCMPEQD.BCST m32 xmm k
|
|
// VPCMPEQD.BCST m32 ymm k k
|
|
// VPCMPEQD.BCST m32 ymm k
|
|
// VPCMPEQD.BCST m32 zmm k k
|
|
// VPCMPEQD.BCST m32 zmm k
|
|
func VPCMPEQD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPCMPEQD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPCMPEQQ: Compare Packed Quadword Data for Equality.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPCMPEQQ m256 ymm ymm
|
|
// VPCMPEQQ ymm ymm ymm
|
|
// VPCMPEQQ m128 xmm xmm
|
|
// VPCMPEQQ xmm xmm xmm
|
|
// VPCMPEQQ m128 xmm k k
|
|
// VPCMPEQQ m128 xmm k
|
|
// VPCMPEQQ m256 ymm k k
|
|
// VPCMPEQQ m256 ymm k
|
|
// VPCMPEQQ xmm xmm k k
|
|
// VPCMPEQQ xmm xmm k
|
|
// VPCMPEQQ ymm ymm k k
|
|
// VPCMPEQQ ymm ymm k
|
|
// VPCMPEQQ m512 zmm k k
|
|
// VPCMPEQQ m512 zmm k
|
|
// VPCMPEQQ zmm zmm k k
|
|
// VPCMPEQQ zmm zmm k
|
|
func VPCMPEQQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPCMPEQQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPCMPEQQ_BCST: Compare Packed Quadword Data for Equality (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPCMPEQQ.BCST m64 xmm k k
|
|
// VPCMPEQQ.BCST m64 xmm k
|
|
// VPCMPEQQ.BCST m64 ymm k k
|
|
// VPCMPEQQ.BCST m64 ymm k
|
|
// VPCMPEQQ.BCST m64 zmm k k
|
|
// VPCMPEQQ.BCST m64 zmm k
|
|
func VPCMPEQQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPCMPEQQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPCMPEQW: Compare Packed Word Data for Equality.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPCMPEQW m256 ymm ymm
|
|
// VPCMPEQW ymm ymm ymm
|
|
// VPCMPEQW m128 xmm xmm
|
|
// VPCMPEQW xmm xmm xmm
|
|
// VPCMPEQW m128 xmm k k
|
|
// VPCMPEQW m128 xmm k
|
|
// VPCMPEQW m256 ymm k k
|
|
// VPCMPEQW m256 ymm k
|
|
// VPCMPEQW xmm xmm k k
|
|
// VPCMPEQW xmm xmm k
|
|
// VPCMPEQW ymm ymm k k
|
|
// VPCMPEQW ymm ymm k
|
|
// VPCMPEQW m512 zmm k k
|
|
// VPCMPEQW m512 zmm k
|
|
// VPCMPEQW zmm zmm k k
|
|
// VPCMPEQW zmm zmm k
|
|
func VPCMPEQW(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPCMPEQW.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPCMPESTRI: Packed Compare Explicit Length Strings, Return Index.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPCMPESTRI imm8 m128 xmm
|
|
// VPCMPESTRI imm8 xmm xmm
|
|
func VPCMPESTRI(i, mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPCMPESTRI.Forms(), sffxs{}, []operand.Op{i, mx, x})
|
|
}
|
|
|
|
// VPCMPESTRM: Packed Compare Explicit Length Strings, Return Mask.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPCMPESTRM imm8 m128 xmm
|
|
// VPCMPESTRM imm8 xmm xmm
|
|
func VPCMPESTRM(i, mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPCMPESTRM.Forms(), sffxs{}, []operand.Op{i, mx, x})
|
|
}
|
|
|
|
// VPCMPGTB: Compare Packed Signed Byte Integers for Greater Than.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPCMPGTB m256 ymm ymm
|
|
// VPCMPGTB ymm ymm ymm
|
|
// VPCMPGTB m128 xmm xmm
|
|
// VPCMPGTB xmm xmm xmm
|
|
// VPCMPGTB m128 xmm k k
|
|
// VPCMPGTB m128 xmm k
|
|
// VPCMPGTB m256 ymm k k
|
|
// VPCMPGTB m256 ymm k
|
|
// VPCMPGTB xmm xmm k k
|
|
// VPCMPGTB xmm xmm k
|
|
// VPCMPGTB ymm ymm k k
|
|
// VPCMPGTB ymm ymm k
|
|
// VPCMPGTB m512 zmm k k
|
|
// VPCMPGTB m512 zmm k
|
|
// VPCMPGTB zmm zmm k k
|
|
// VPCMPGTB zmm zmm k
|
|
func VPCMPGTB(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPCMPGTB.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPCMPGTD: Compare Packed Signed Doubleword Integers for Greater Than.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPCMPGTD m256 ymm ymm
|
|
// VPCMPGTD ymm ymm ymm
|
|
// VPCMPGTD m128 xmm xmm
|
|
// VPCMPGTD xmm xmm xmm
|
|
// VPCMPGTD m128 xmm k k
|
|
// VPCMPGTD m128 xmm k
|
|
// VPCMPGTD m256 ymm k k
|
|
// VPCMPGTD m256 ymm k
|
|
// VPCMPGTD xmm xmm k k
|
|
// VPCMPGTD xmm xmm k
|
|
// VPCMPGTD ymm ymm k k
|
|
// VPCMPGTD ymm ymm k
|
|
// VPCMPGTD m512 zmm k k
|
|
// VPCMPGTD m512 zmm k
|
|
// VPCMPGTD zmm zmm k k
|
|
// VPCMPGTD zmm zmm k
|
|
func VPCMPGTD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPCMPGTD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPCMPGTD_BCST: Compare Packed Signed Doubleword Integers for Greater Than (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPCMPGTD.BCST m32 xmm k k
|
|
// VPCMPGTD.BCST m32 xmm k
|
|
// VPCMPGTD.BCST m32 ymm k k
|
|
// VPCMPGTD.BCST m32 ymm k
|
|
// VPCMPGTD.BCST m32 zmm k k
|
|
// VPCMPGTD.BCST m32 zmm k
|
|
func VPCMPGTD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPCMPGTD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPCMPGTQ: Compare Packed Data for Greater Than.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPCMPGTQ m256 ymm ymm
|
|
// VPCMPGTQ ymm ymm ymm
|
|
// VPCMPGTQ m128 xmm xmm
|
|
// VPCMPGTQ xmm xmm xmm
|
|
// VPCMPGTQ m128 xmm k k
|
|
// VPCMPGTQ m128 xmm k
|
|
// VPCMPGTQ m256 ymm k k
|
|
// VPCMPGTQ m256 ymm k
|
|
// VPCMPGTQ xmm xmm k k
|
|
// VPCMPGTQ xmm xmm k
|
|
// VPCMPGTQ ymm ymm k k
|
|
// VPCMPGTQ ymm ymm k
|
|
// VPCMPGTQ m512 zmm k k
|
|
// VPCMPGTQ m512 zmm k
|
|
// VPCMPGTQ zmm zmm k k
|
|
// VPCMPGTQ zmm zmm k
|
|
func VPCMPGTQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPCMPGTQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPCMPGTQ_BCST: Compare Packed Data for Greater Than (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPCMPGTQ.BCST m64 xmm k k
|
|
// VPCMPGTQ.BCST m64 xmm k
|
|
// VPCMPGTQ.BCST m64 ymm k k
|
|
// VPCMPGTQ.BCST m64 ymm k
|
|
// VPCMPGTQ.BCST m64 zmm k k
|
|
// VPCMPGTQ.BCST m64 zmm k
|
|
func VPCMPGTQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPCMPGTQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPCMPGTW: Compare Packed Signed Word Integers for Greater Than.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPCMPGTW m256 ymm ymm
|
|
// VPCMPGTW ymm ymm ymm
|
|
// VPCMPGTW m128 xmm xmm
|
|
// VPCMPGTW xmm xmm xmm
|
|
// VPCMPGTW m128 xmm k k
|
|
// VPCMPGTW m128 xmm k
|
|
// VPCMPGTW m256 ymm k k
|
|
// VPCMPGTW m256 ymm k
|
|
// VPCMPGTW xmm xmm k k
|
|
// VPCMPGTW xmm xmm k
|
|
// VPCMPGTW ymm ymm k k
|
|
// VPCMPGTW ymm ymm k
|
|
// VPCMPGTW m512 zmm k k
|
|
// VPCMPGTW m512 zmm k
|
|
// VPCMPGTW zmm zmm k k
|
|
// VPCMPGTW zmm zmm k
|
|
func VPCMPGTW(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPCMPGTW.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPCMPISTRI: Packed Compare Implicit Length Strings, Return Index.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPCMPISTRI imm8 m128 xmm
|
|
// VPCMPISTRI imm8 xmm xmm
|
|
func VPCMPISTRI(i, mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPCMPISTRI.Forms(), sffxs{}, []operand.Op{i, mx, x})
|
|
}
|
|
|
|
// VPCMPISTRM: Packed Compare Implicit Length Strings, Return Mask.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPCMPISTRM imm8 m128 xmm
|
|
// VPCMPISTRM imm8 xmm xmm
|
|
func VPCMPISTRM(i, mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPCMPISTRM.Forms(), sffxs{}, []operand.Op{i, mx, x})
|
|
}
|
|
|
|
// VPCMPQ: Compare Packed Signed Quadword Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPCMPQ imm8 m128 xmm k k
|
|
// VPCMPQ imm8 m128 xmm k
|
|
// VPCMPQ imm8 m256 ymm k k
|
|
// VPCMPQ imm8 m256 ymm k
|
|
// VPCMPQ imm8 xmm xmm k k
|
|
// VPCMPQ imm8 xmm xmm k
|
|
// VPCMPQ imm8 ymm ymm k k
|
|
// VPCMPQ imm8 ymm ymm k
|
|
// VPCMPQ imm8 m512 zmm k k
|
|
// VPCMPQ imm8 m512 zmm k
|
|
// VPCMPQ imm8 zmm zmm k k
|
|
// VPCMPQ imm8 zmm zmm k
|
|
func VPCMPQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPCMPQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPCMPQ_BCST: Compare Packed Signed Quadword Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPCMPQ.BCST imm8 m64 xmm k k
|
|
// VPCMPQ.BCST imm8 m64 xmm k
|
|
// VPCMPQ.BCST imm8 m64 ymm k k
|
|
// VPCMPQ.BCST imm8 m64 ymm k
|
|
// VPCMPQ.BCST imm8 m64 zmm k k
|
|
// VPCMPQ.BCST imm8 m64 zmm k
|
|
func VPCMPQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPCMPQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPCMPUB: Compare Packed Unsigned Byte Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPCMPUB imm8 m128 xmm k k
|
|
// VPCMPUB imm8 m128 xmm k
|
|
// VPCMPUB imm8 m256 ymm k k
|
|
// VPCMPUB imm8 m256 ymm k
|
|
// VPCMPUB imm8 xmm xmm k k
|
|
// VPCMPUB imm8 xmm xmm k
|
|
// VPCMPUB imm8 ymm ymm k k
|
|
// VPCMPUB imm8 ymm ymm k
|
|
// VPCMPUB imm8 m512 zmm k k
|
|
// VPCMPUB imm8 m512 zmm k
|
|
// VPCMPUB imm8 zmm zmm k k
|
|
// VPCMPUB imm8 zmm zmm k
|
|
func VPCMPUB(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPCMPUB.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPCMPUD: Compare Packed Unsigned Doubleword Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPCMPUD imm8 m128 xmm k k
|
|
// VPCMPUD imm8 m128 xmm k
|
|
// VPCMPUD imm8 m256 ymm k k
|
|
// VPCMPUD imm8 m256 ymm k
|
|
// VPCMPUD imm8 xmm xmm k k
|
|
// VPCMPUD imm8 xmm xmm k
|
|
// VPCMPUD imm8 ymm ymm k k
|
|
// VPCMPUD imm8 ymm ymm k
|
|
// VPCMPUD imm8 m512 zmm k k
|
|
// VPCMPUD imm8 m512 zmm k
|
|
// VPCMPUD imm8 zmm zmm k k
|
|
// VPCMPUD imm8 zmm zmm k
|
|
func VPCMPUD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPCMPUD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPCMPUD_BCST: Compare Packed Unsigned Doubleword Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPCMPUD.BCST imm8 m32 xmm k k
|
|
// VPCMPUD.BCST imm8 m32 xmm k
|
|
// VPCMPUD.BCST imm8 m32 ymm k k
|
|
// VPCMPUD.BCST imm8 m32 ymm k
|
|
// VPCMPUD.BCST imm8 m32 zmm k k
|
|
// VPCMPUD.BCST imm8 m32 zmm k
|
|
func VPCMPUD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPCMPUD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPCMPUQ: Compare Packed Unsigned Quadword Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPCMPUQ imm8 m128 xmm k k
|
|
// VPCMPUQ imm8 m128 xmm k
|
|
// VPCMPUQ imm8 m256 ymm k k
|
|
// VPCMPUQ imm8 m256 ymm k
|
|
// VPCMPUQ imm8 xmm xmm k k
|
|
// VPCMPUQ imm8 xmm xmm k
|
|
// VPCMPUQ imm8 ymm ymm k k
|
|
// VPCMPUQ imm8 ymm ymm k
|
|
// VPCMPUQ imm8 m512 zmm k k
|
|
// VPCMPUQ imm8 m512 zmm k
|
|
// VPCMPUQ imm8 zmm zmm k k
|
|
// VPCMPUQ imm8 zmm zmm k
|
|
func VPCMPUQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPCMPUQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPCMPUQ_BCST: Compare Packed Unsigned Quadword Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPCMPUQ.BCST imm8 m64 xmm k k
|
|
// VPCMPUQ.BCST imm8 m64 xmm k
|
|
// VPCMPUQ.BCST imm8 m64 ymm k k
|
|
// VPCMPUQ.BCST imm8 m64 ymm k
|
|
// VPCMPUQ.BCST imm8 m64 zmm k k
|
|
// VPCMPUQ.BCST imm8 m64 zmm k
|
|
func VPCMPUQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPCMPUQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPCMPUW: Compare Packed Unsigned Word Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPCMPUW imm8 m128 xmm k k
|
|
// VPCMPUW imm8 m128 xmm k
|
|
// VPCMPUW imm8 m256 ymm k k
|
|
// VPCMPUW imm8 m256 ymm k
|
|
// VPCMPUW imm8 xmm xmm k k
|
|
// VPCMPUW imm8 xmm xmm k
|
|
// VPCMPUW imm8 ymm ymm k k
|
|
// VPCMPUW imm8 ymm ymm k
|
|
// VPCMPUW imm8 m512 zmm k k
|
|
// VPCMPUW imm8 m512 zmm k
|
|
// VPCMPUW imm8 zmm zmm k k
|
|
// VPCMPUW imm8 zmm zmm k
|
|
func VPCMPUW(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPCMPUW.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPCMPW: Compare Packed Signed Word Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPCMPW imm8 m128 xmm k k
|
|
// VPCMPW imm8 m128 xmm k
|
|
// VPCMPW imm8 m256 ymm k k
|
|
// VPCMPW imm8 m256 ymm k
|
|
// VPCMPW imm8 xmm xmm k k
|
|
// VPCMPW imm8 xmm xmm k
|
|
// VPCMPW imm8 ymm ymm k k
|
|
// VPCMPW imm8 ymm ymm k
|
|
// VPCMPW imm8 m512 zmm k k
|
|
// VPCMPW imm8 m512 zmm k
|
|
// VPCMPW imm8 zmm zmm k k
|
|
// VPCMPW imm8 zmm zmm k
|
|
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:
|
|
//
|
|
// VPCOMPRESSD xmm k m128
|
|
// VPCOMPRESSD xmm k xmm
|
|
// VPCOMPRESSD xmm m128
|
|
// VPCOMPRESSD xmm xmm
|
|
// VPCOMPRESSD ymm k m256
|
|
// VPCOMPRESSD ymm k ymm
|
|
// VPCOMPRESSD ymm m256
|
|
// VPCOMPRESSD ymm ymm
|
|
// VPCOMPRESSD zmm k m512
|
|
// VPCOMPRESSD zmm k zmm
|
|
// VPCOMPRESSD zmm m512
|
|
// VPCOMPRESSD zmm zmm
|
|
func VPCOMPRESSD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPCOMPRESSD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPCOMPRESSD_Z: Store Sparse Packed Doubleword Integer Values into Dense Memory/Register (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPCOMPRESSD.Z xmm k m128
|
|
// VPCOMPRESSD.Z xmm k xmm
|
|
// VPCOMPRESSD.Z ymm k m256
|
|
// VPCOMPRESSD.Z ymm k ymm
|
|
// VPCOMPRESSD.Z zmm k m512
|
|
// VPCOMPRESSD.Z zmm k zmm
|
|
func VPCOMPRESSD_Z(xyz, k, mxyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPCOMPRESSD.Forms(), sffxs{sffxZ}, []operand.Op{xyz, k, mxyz})
|
|
}
|
|
|
|
// VPCOMPRESSQ: Store Sparse Packed Quadword Integer Values into Dense Memory/Register.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPCOMPRESSQ xmm k m128
|
|
// VPCOMPRESSQ xmm k xmm
|
|
// VPCOMPRESSQ xmm m128
|
|
// VPCOMPRESSQ xmm xmm
|
|
// VPCOMPRESSQ ymm k m256
|
|
// VPCOMPRESSQ ymm k ymm
|
|
// VPCOMPRESSQ ymm m256
|
|
// VPCOMPRESSQ ymm ymm
|
|
// VPCOMPRESSQ zmm k m512
|
|
// VPCOMPRESSQ zmm k zmm
|
|
// VPCOMPRESSQ zmm m512
|
|
// VPCOMPRESSQ zmm zmm
|
|
func VPCOMPRESSQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPCOMPRESSQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPCOMPRESSQ_Z: Store Sparse Packed Quadword Integer Values into Dense Memory/Register (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPCOMPRESSQ.Z xmm k m128
|
|
// VPCOMPRESSQ.Z xmm k xmm
|
|
// VPCOMPRESSQ.Z ymm k m256
|
|
// VPCOMPRESSQ.Z ymm k ymm
|
|
// VPCOMPRESSQ.Z zmm k m512
|
|
// VPCOMPRESSQ.Z zmm k zmm
|
|
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:
|
|
//
|
|
// VPCONFLICTD m128 k xmm
|
|
// VPCONFLICTD m128 xmm
|
|
// VPCONFLICTD m256 k ymm
|
|
// VPCONFLICTD m256 ymm
|
|
// VPCONFLICTD xmm k xmm
|
|
// VPCONFLICTD xmm xmm
|
|
// VPCONFLICTD ymm k ymm
|
|
// VPCONFLICTD ymm ymm
|
|
// VPCONFLICTD m512 k zmm
|
|
// VPCONFLICTD m512 zmm
|
|
// VPCONFLICTD zmm k zmm
|
|
// VPCONFLICTD zmm zmm
|
|
func VPCONFLICTD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPCONFLICTD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPCONFLICTD_BCST: Detect Conflicts Within a Vector of Packed Doubleword Values into Dense Memory/Register (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPCONFLICTD.BCST m32 k xmm
|
|
// VPCONFLICTD.BCST m32 k ymm
|
|
// VPCONFLICTD.BCST m32 xmm
|
|
// VPCONFLICTD.BCST m32 ymm
|
|
// VPCONFLICTD.BCST m32 k zmm
|
|
// VPCONFLICTD.BCST m32 zmm
|
|
func VPCONFLICTD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPCONFLICTD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPCONFLICTD_BCST_Z: Detect Conflicts Within a Vector of Packed Doubleword Values into Dense Memory/Register (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPCONFLICTD.BCST.Z m32 k xmm
|
|
// VPCONFLICTD.BCST.Z m32 k ymm
|
|
// VPCONFLICTD.BCST.Z m32 k zmm
|
|
func VPCONFLICTD_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPCONFLICTD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz})
|
|
}
|
|
|
|
// VPCONFLICTD_Z: Detect Conflicts Within a Vector of Packed Doubleword Values into Dense Memory/Register (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPCONFLICTD.Z m128 k xmm
|
|
// VPCONFLICTD.Z m256 k ymm
|
|
// VPCONFLICTD.Z xmm k xmm
|
|
// VPCONFLICTD.Z ymm k ymm
|
|
// VPCONFLICTD.Z m512 k zmm
|
|
// VPCONFLICTD.Z zmm k zmm
|
|
func VPCONFLICTD_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPCONFLICTD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz})
|
|
}
|
|
|
|
// VPCONFLICTQ: Detect Conflicts Within a Vector of Packed Quadword Values into Dense Memory/Register.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPCONFLICTQ m128 k xmm
|
|
// VPCONFLICTQ m128 xmm
|
|
// VPCONFLICTQ m256 k ymm
|
|
// VPCONFLICTQ m256 ymm
|
|
// VPCONFLICTQ xmm k xmm
|
|
// VPCONFLICTQ xmm xmm
|
|
// VPCONFLICTQ ymm k ymm
|
|
// VPCONFLICTQ ymm ymm
|
|
// VPCONFLICTQ m512 k zmm
|
|
// VPCONFLICTQ m512 zmm
|
|
// VPCONFLICTQ zmm k zmm
|
|
// VPCONFLICTQ zmm zmm
|
|
func VPCONFLICTQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPCONFLICTQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPCONFLICTQ_BCST: Detect Conflicts Within a Vector of Packed Quadword Values into Dense Memory/Register (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPCONFLICTQ.BCST m64 k xmm
|
|
// VPCONFLICTQ.BCST m64 k ymm
|
|
// VPCONFLICTQ.BCST m64 xmm
|
|
// VPCONFLICTQ.BCST m64 ymm
|
|
// VPCONFLICTQ.BCST m64 k zmm
|
|
// VPCONFLICTQ.BCST m64 zmm
|
|
func VPCONFLICTQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPCONFLICTQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPCONFLICTQ_BCST_Z: Detect Conflicts Within a Vector of Packed Quadword Values into Dense Memory/Register (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPCONFLICTQ.BCST.Z m64 k xmm
|
|
// VPCONFLICTQ.BCST.Z m64 k ymm
|
|
// VPCONFLICTQ.BCST.Z m64 k zmm
|
|
func VPCONFLICTQ_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPCONFLICTQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz})
|
|
}
|
|
|
|
// VPCONFLICTQ_Z: Detect Conflicts Within a Vector of Packed Quadword Values into Dense Memory/Register (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPCONFLICTQ.Z m128 k xmm
|
|
// VPCONFLICTQ.Z m256 k ymm
|
|
// VPCONFLICTQ.Z xmm k xmm
|
|
// VPCONFLICTQ.Z ymm k ymm
|
|
// VPCONFLICTQ.Z m512 k zmm
|
|
// VPCONFLICTQ.Z zmm k zmm
|
|
func VPCONFLICTQ_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPCONFLICTQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz})
|
|
}
|
|
|
|
// VPDPBUSD: Multiply and Add Unsigned and Signed Bytes.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPDPBUSD m128 xmm k xmm
|
|
// VPDPBUSD m128 xmm xmm
|
|
// VPDPBUSD m256 ymm k ymm
|
|
// VPDPBUSD m256 ymm ymm
|
|
// VPDPBUSD xmm xmm k xmm
|
|
// VPDPBUSD xmm xmm xmm
|
|
// VPDPBUSD ymm ymm k ymm
|
|
// VPDPBUSD ymm ymm ymm
|
|
// VPDPBUSD m512 zmm k zmm
|
|
// VPDPBUSD m512 zmm zmm
|
|
// VPDPBUSD zmm zmm k zmm
|
|
// VPDPBUSD zmm zmm zmm
|
|
func VPDPBUSD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPDPBUSD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPDPBUSDS: Multiply and Add Unsigned and Signed Bytes with Saturation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPDPBUSDS m128 xmm k xmm
|
|
// VPDPBUSDS m128 xmm xmm
|
|
// VPDPBUSDS m256 ymm k ymm
|
|
// VPDPBUSDS m256 ymm ymm
|
|
// VPDPBUSDS xmm xmm k xmm
|
|
// VPDPBUSDS xmm xmm xmm
|
|
// VPDPBUSDS ymm ymm k ymm
|
|
// VPDPBUSDS ymm ymm ymm
|
|
// VPDPBUSDS m512 zmm k zmm
|
|
// VPDPBUSDS m512 zmm zmm
|
|
// VPDPBUSDS zmm zmm k zmm
|
|
// VPDPBUSDS zmm zmm zmm
|
|
func VPDPBUSDS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPDPBUSDS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPDPBUSDS_BCST: Multiply and Add Unsigned and Signed Bytes with Saturation (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPDPBUSDS.BCST m32 xmm k xmm
|
|
// VPDPBUSDS.BCST m32 xmm xmm
|
|
// VPDPBUSDS.BCST m32 ymm k ymm
|
|
// VPDPBUSDS.BCST m32 ymm ymm
|
|
// VPDPBUSDS.BCST m32 zmm k zmm
|
|
// VPDPBUSDS.BCST m32 zmm zmm
|
|
func VPDPBUSDS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPDPBUSDS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPDPBUSDS_BCST_Z: Multiply and Add Unsigned and Signed Bytes with Saturation (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPDPBUSDS.BCST.Z m32 xmm k xmm
|
|
// VPDPBUSDS.BCST.Z m32 ymm k ymm
|
|
// VPDPBUSDS.BCST.Z m32 zmm k zmm
|
|
func VPDPBUSDS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPDPBUSDS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPDPBUSDS_Z: Multiply and Add Unsigned and Signed Bytes with Saturation (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPDPBUSDS.Z m128 xmm k xmm
|
|
// VPDPBUSDS.Z m256 ymm k ymm
|
|
// VPDPBUSDS.Z xmm xmm k xmm
|
|
// VPDPBUSDS.Z ymm ymm k ymm
|
|
// VPDPBUSDS.Z m512 zmm k zmm
|
|
// VPDPBUSDS.Z zmm zmm k zmm
|
|
func VPDPBUSDS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPDPBUSDS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPDPBUSD_BCST: Multiply and Add Unsigned and Signed Bytes (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPDPBUSD.BCST m32 xmm k xmm
|
|
// VPDPBUSD.BCST m32 xmm xmm
|
|
// VPDPBUSD.BCST m32 ymm k ymm
|
|
// VPDPBUSD.BCST m32 ymm ymm
|
|
// VPDPBUSD.BCST m32 zmm k zmm
|
|
// VPDPBUSD.BCST m32 zmm zmm
|
|
func VPDPBUSD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPDPBUSD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPDPBUSD_BCST_Z: Multiply and Add Unsigned and Signed Bytes (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPDPBUSD.BCST.Z m32 xmm k xmm
|
|
// VPDPBUSD.BCST.Z m32 ymm k ymm
|
|
// VPDPBUSD.BCST.Z m32 zmm k zmm
|
|
func VPDPBUSD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPDPBUSD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPDPBUSD_Z: Multiply and Add Unsigned and Signed Bytes (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPDPBUSD.Z m128 xmm k xmm
|
|
// VPDPBUSD.Z m256 ymm k ymm
|
|
// VPDPBUSD.Z xmm xmm k xmm
|
|
// VPDPBUSD.Z ymm ymm k ymm
|
|
// VPDPBUSD.Z m512 zmm k zmm
|
|
// VPDPBUSD.Z zmm zmm k zmm
|
|
func VPDPBUSD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPDPBUSD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPDPWSSD: Multiply and Add Signed Word Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPDPWSSD m128 xmm k xmm
|
|
// VPDPWSSD m128 xmm xmm
|
|
// VPDPWSSD m256 ymm k ymm
|
|
// VPDPWSSD m256 ymm ymm
|
|
// VPDPWSSD xmm xmm k xmm
|
|
// VPDPWSSD xmm xmm xmm
|
|
// VPDPWSSD ymm ymm k ymm
|
|
// VPDPWSSD ymm ymm ymm
|
|
// VPDPWSSD m512 zmm k zmm
|
|
// VPDPWSSD m512 zmm zmm
|
|
// VPDPWSSD zmm zmm k zmm
|
|
// VPDPWSSD zmm zmm zmm
|
|
func VPDPWSSD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPDPWSSD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPDPWSSDS: Multiply and Add Signed Word Integers with Saturation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPDPWSSDS m128 xmm k xmm
|
|
// VPDPWSSDS m128 xmm xmm
|
|
// VPDPWSSDS m256 ymm k ymm
|
|
// VPDPWSSDS m256 ymm ymm
|
|
// VPDPWSSDS xmm xmm k xmm
|
|
// VPDPWSSDS xmm xmm xmm
|
|
// VPDPWSSDS ymm ymm k ymm
|
|
// VPDPWSSDS ymm ymm ymm
|
|
// VPDPWSSDS m512 zmm k zmm
|
|
// VPDPWSSDS m512 zmm zmm
|
|
// VPDPWSSDS zmm zmm k zmm
|
|
// VPDPWSSDS zmm zmm zmm
|
|
func VPDPWSSDS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPDPWSSDS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPDPWSSDS_BCST: Multiply and Add Signed Word Integers with Saturation (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPDPWSSDS.BCST m32 xmm k xmm
|
|
// VPDPWSSDS.BCST m32 xmm xmm
|
|
// VPDPWSSDS.BCST m32 ymm k ymm
|
|
// VPDPWSSDS.BCST m32 ymm ymm
|
|
// VPDPWSSDS.BCST m32 zmm k zmm
|
|
// VPDPWSSDS.BCST m32 zmm zmm
|
|
func VPDPWSSDS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPDPWSSDS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPDPWSSDS_BCST_Z: Multiply and Add Signed Word Integers with Saturation (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPDPWSSDS.BCST.Z m32 xmm k xmm
|
|
// VPDPWSSDS.BCST.Z m32 ymm k ymm
|
|
// VPDPWSSDS.BCST.Z m32 zmm k zmm
|
|
func VPDPWSSDS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPDPWSSDS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPDPWSSDS_Z: Multiply and Add Signed Word Integers with Saturation (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPDPWSSDS.Z m128 xmm k xmm
|
|
// VPDPWSSDS.Z m256 ymm k ymm
|
|
// VPDPWSSDS.Z xmm xmm k xmm
|
|
// VPDPWSSDS.Z ymm ymm k ymm
|
|
// VPDPWSSDS.Z m512 zmm k zmm
|
|
// VPDPWSSDS.Z zmm zmm k zmm
|
|
func VPDPWSSDS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPDPWSSDS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPDPWSSD_BCST: Multiply and Add Signed Word Integers (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPDPWSSD.BCST m32 xmm k xmm
|
|
// VPDPWSSD.BCST m32 xmm xmm
|
|
// VPDPWSSD.BCST m32 ymm k ymm
|
|
// VPDPWSSD.BCST m32 ymm ymm
|
|
// VPDPWSSD.BCST m32 zmm k zmm
|
|
// VPDPWSSD.BCST m32 zmm zmm
|
|
func VPDPWSSD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPDPWSSD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPDPWSSD_BCST_Z: Multiply and Add Signed Word Integers (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPDPWSSD.BCST.Z m32 xmm k xmm
|
|
// VPDPWSSD.BCST.Z m32 ymm k ymm
|
|
// VPDPWSSD.BCST.Z m32 zmm k zmm
|
|
func VPDPWSSD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPDPWSSD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPDPWSSD_Z: Multiply and Add Signed Word Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPDPWSSD.Z m128 xmm k xmm
|
|
// VPDPWSSD.Z m256 ymm k ymm
|
|
// VPDPWSSD.Z xmm xmm k xmm
|
|
// VPDPWSSD.Z ymm ymm k ymm
|
|
// VPDPWSSD.Z m512 zmm k zmm
|
|
// VPDPWSSD.Z zmm zmm k zmm
|
|
func VPDPWSSD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPDPWSSD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPERM2F128: Permute Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERM2F128 imm8 m256 ymm ymm
|
|
// VPERM2F128 imm8 ymm ymm ymm
|
|
func VPERM2F128(i, my, y, y1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERM2F128.Forms(), sffxs{}, []operand.Op{i, my, y, y1})
|
|
}
|
|
|
|
// VPERM2I128: Permute 128-Bit Integer Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERM2I128 imm8 m256 ymm ymm
|
|
// VPERM2I128 imm8 ymm ymm ymm
|
|
func VPERM2I128(i, my, y, y1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERM2I128.Forms(), sffxs{}, []operand.Op{i, my, y, y1})
|
|
}
|
|
|
|
// VPERMB: Permute Byte Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMB m128 xmm k xmm
|
|
// VPERMB m128 xmm xmm
|
|
// VPERMB m256 ymm k ymm
|
|
// VPERMB m256 ymm ymm
|
|
// VPERMB xmm xmm k xmm
|
|
// VPERMB xmm xmm xmm
|
|
// VPERMB ymm ymm k ymm
|
|
// VPERMB ymm ymm ymm
|
|
// VPERMB m512 zmm k zmm
|
|
// VPERMB m512 zmm zmm
|
|
// VPERMB zmm zmm k zmm
|
|
// VPERMB zmm zmm zmm
|
|
func VPERMB(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMB.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPERMB_Z: Permute Byte Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMB.Z m128 xmm k xmm
|
|
// VPERMB.Z m256 ymm k ymm
|
|
// VPERMB.Z xmm xmm k xmm
|
|
// VPERMB.Z ymm ymm k ymm
|
|
// VPERMB.Z m512 zmm k zmm
|
|
// VPERMB.Z zmm zmm k zmm
|
|
func VPERMB_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMB.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPERMD: Permute Doubleword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMD m256 ymm ymm
|
|
// VPERMD ymm ymm ymm
|
|
// VPERMD m256 ymm k ymm
|
|
// VPERMD ymm ymm k ymm
|
|
// VPERMD m512 zmm k zmm
|
|
// VPERMD m512 zmm zmm
|
|
// VPERMD zmm zmm k zmm
|
|
// VPERMD zmm zmm zmm
|
|
func VPERMD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPERMD_BCST: Permute Doubleword Integers (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMD.BCST m32 ymm k ymm
|
|
// VPERMD.BCST m32 ymm ymm
|
|
// VPERMD.BCST m32 zmm k zmm
|
|
// VPERMD.BCST m32 zmm zmm
|
|
func VPERMD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPERMD_BCST_Z: Permute Doubleword Integers (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMD.BCST.Z m32 ymm k ymm
|
|
// VPERMD.BCST.Z m32 zmm k zmm
|
|
func VPERMD_BCST_Z(m, yz, k, yz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, yz, k, yz1})
|
|
}
|
|
|
|
// VPERMD_Z: Permute Doubleword Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMD.Z m256 ymm k ymm
|
|
// VPERMD.Z ymm ymm k ymm
|
|
// VPERMD.Z m512 zmm k zmm
|
|
// VPERMD.Z zmm zmm k zmm
|
|
func VPERMD_Z(myz, yz, k, yz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMD.Forms(), sffxs{sffxZ}, []operand.Op{myz, yz, k, yz1})
|
|
}
|
|
|
|
// VPERMI2B: Full Permute of Bytes From Two Tables Overwriting the Index.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMI2B m128 xmm k xmm
|
|
// VPERMI2B m128 xmm xmm
|
|
// VPERMI2B m256 ymm k ymm
|
|
// VPERMI2B m256 ymm ymm
|
|
// VPERMI2B xmm xmm k xmm
|
|
// VPERMI2B xmm xmm xmm
|
|
// VPERMI2B ymm ymm k ymm
|
|
// VPERMI2B ymm ymm ymm
|
|
// VPERMI2B m512 zmm k zmm
|
|
// VPERMI2B m512 zmm zmm
|
|
// VPERMI2B zmm zmm k zmm
|
|
// VPERMI2B zmm zmm zmm
|
|
func VPERMI2B(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMI2B.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPERMI2B_Z: Full Permute of Bytes From Two Tables Overwriting the Index (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMI2B.Z m128 xmm k xmm
|
|
// VPERMI2B.Z m256 ymm k ymm
|
|
// VPERMI2B.Z xmm xmm k xmm
|
|
// VPERMI2B.Z ymm ymm k ymm
|
|
// VPERMI2B.Z m512 zmm k zmm
|
|
// VPERMI2B.Z zmm zmm k zmm
|
|
func VPERMI2B_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMI2B.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPERMI2D: Full Permute of Doublewords From Two Tables Overwriting the Index.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMI2D m128 xmm k xmm
|
|
// VPERMI2D m128 xmm xmm
|
|
// VPERMI2D m256 ymm k ymm
|
|
// VPERMI2D m256 ymm ymm
|
|
// VPERMI2D xmm xmm k xmm
|
|
// VPERMI2D xmm xmm xmm
|
|
// VPERMI2D ymm ymm k ymm
|
|
// VPERMI2D ymm ymm ymm
|
|
// VPERMI2D m512 zmm k zmm
|
|
// VPERMI2D m512 zmm zmm
|
|
// VPERMI2D zmm zmm k zmm
|
|
// VPERMI2D zmm zmm zmm
|
|
func VPERMI2D(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMI2D.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPERMI2D_BCST: Full Permute of Doublewords From Two Tables Overwriting the Index (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMI2D.BCST m32 xmm k xmm
|
|
// VPERMI2D.BCST m32 xmm xmm
|
|
// VPERMI2D.BCST m32 ymm k ymm
|
|
// VPERMI2D.BCST m32 ymm ymm
|
|
// VPERMI2D.BCST m32 zmm k zmm
|
|
// VPERMI2D.BCST m32 zmm zmm
|
|
func VPERMI2D_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMI2D.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPERMI2D_BCST_Z: Full Permute of Doublewords From Two Tables Overwriting the Index (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMI2D.BCST.Z m32 xmm k xmm
|
|
// VPERMI2D.BCST.Z m32 ymm k ymm
|
|
// VPERMI2D.BCST.Z m32 zmm k zmm
|
|
func VPERMI2D_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMI2D.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPERMI2D_Z: Full Permute of Doublewords From Two Tables Overwriting the Index (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMI2D.Z m128 xmm k xmm
|
|
// VPERMI2D.Z m256 ymm k ymm
|
|
// VPERMI2D.Z xmm xmm k xmm
|
|
// VPERMI2D.Z ymm ymm k ymm
|
|
// VPERMI2D.Z m512 zmm k zmm
|
|
// VPERMI2D.Z zmm zmm k zmm
|
|
func VPERMI2D_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMI2D.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPERMI2PD: Full Permute of Double-Precision Floating-Point Values From Two Tables Overwriting the Index.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMI2PD m128 xmm k xmm
|
|
// VPERMI2PD m128 xmm xmm
|
|
// VPERMI2PD m256 ymm k ymm
|
|
// VPERMI2PD m256 ymm ymm
|
|
// VPERMI2PD xmm xmm k xmm
|
|
// VPERMI2PD xmm xmm xmm
|
|
// VPERMI2PD ymm ymm k ymm
|
|
// VPERMI2PD ymm ymm ymm
|
|
// VPERMI2PD m512 zmm k zmm
|
|
// VPERMI2PD m512 zmm zmm
|
|
// VPERMI2PD zmm zmm k zmm
|
|
// VPERMI2PD zmm zmm zmm
|
|
func VPERMI2PD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMI2PD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPERMI2PD_BCST: Full Permute of Double-Precision Floating-Point Values From Two Tables Overwriting the Index (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMI2PD.BCST m64 xmm k xmm
|
|
// VPERMI2PD.BCST m64 xmm xmm
|
|
// VPERMI2PD.BCST m64 ymm k ymm
|
|
// VPERMI2PD.BCST m64 ymm ymm
|
|
// VPERMI2PD.BCST m64 zmm k zmm
|
|
// VPERMI2PD.BCST m64 zmm zmm
|
|
func VPERMI2PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMI2PD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPERMI2PD_BCST_Z: Full Permute of Double-Precision Floating-Point Values From Two Tables Overwriting the Index (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMI2PD.BCST.Z m64 xmm k xmm
|
|
// VPERMI2PD.BCST.Z m64 ymm k ymm
|
|
// VPERMI2PD.BCST.Z m64 zmm k zmm
|
|
func VPERMI2PD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMI2PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPERMI2PD_Z: Full Permute of Double-Precision Floating-Point Values From Two Tables Overwriting the Index (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMI2PD.Z m128 xmm k xmm
|
|
// VPERMI2PD.Z m256 ymm k ymm
|
|
// VPERMI2PD.Z xmm xmm k xmm
|
|
// VPERMI2PD.Z ymm ymm k ymm
|
|
// VPERMI2PD.Z m512 zmm k zmm
|
|
// VPERMI2PD.Z zmm zmm k zmm
|
|
func VPERMI2PD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMI2PD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPERMI2PS: Full Permute of Single-Precision Floating-Point Values From Two Tables Overwriting the Index.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMI2PS m128 xmm k xmm
|
|
// VPERMI2PS m128 xmm xmm
|
|
// VPERMI2PS m256 ymm k ymm
|
|
// VPERMI2PS m256 ymm ymm
|
|
// VPERMI2PS xmm xmm k xmm
|
|
// VPERMI2PS xmm xmm xmm
|
|
// VPERMI2PS ymm ymm k ymm
|
|
// VPERMI2PS ymm ymm ymm
|
|
// VPERMI2PS m512 zmm k zmm
|
|
// VPERMI2PS m512 zmm zmm
|
|
// VPERMI2PS zmm zmm k zmm
|
|
// VPERMI2PS zmm zmm zmm
|
|
func VPERMI2PS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMI2PS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPERMI2PS_BCST: Full Permute of Single-Precision Floating-Point Values From Two Tables Overwriting the Index (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMI2PS.BCST m32 xmm k xmm
|
|
// VPERMI2PS.BCST m32 xmm xmm
|
|
// VPERMI2PS.BCST m32 ymm k ymm
|
|
// VPERMI2PS.BCST m32 ymm ymm
|
|
// VPERMI2PS.BCST m32 zmm k zmm
|
|
// VPERMI2PS.BCST m32 zmm zmm
|
|
func VPERMI2PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMI2PS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPERMI2PS_BCST_Z: Full Permute of Single-Precision Floating-Point Values From Two Tables Overwriting the Index (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMI2PS.BCST.Z m32 xmm k xmm
|
|
// VPERMI2PS.BCST.Z m32 ymm k ymm
|
|
// VPERMI2PS.BCST.Z m32 zmm k zmm
|
|
func VPERMI2PS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMI2PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPERMI2PS_Z: Full Permute of Single-Precision Floating-Point Values From Two Tables Overwriting the Index (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMI2PS.Z m128 xmm k xmm
|
|
// VPERMI2PS.Z m256 ymm k ymm
|
|
// VPERMI2PS.Z xmm xmm k xmm
|
|
// VPERMI2PS.Z ymm ymm k ymm
|
|
// VPERMI2PS.Z m512 zmm k zmm
|
|
// VPERMI2PS.Z zmm zmm k zmm
|
|
func VPERMI2PS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMI2PS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPERMI2Q: Full Permute of Quadwords From Two Tables Overwriting the Index.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMI2Q m128 xmm k xmm
|
|
// VPERMI2Q m128 xmm xmm
|
|
// VPERMI2Q m256 ymm k ymm
|
|
// VPERMI2Q m256 ymm ymm
|
|
// VPERMI2Q xmm xmm k xmm
|
|
// VPERMI2Q xmm xmm xmm
|
|
// VPERMI2Q ymm ymm k ymm
|
|
// VPERMI2Q ymm ymm ymm
|
|
// VPERMI2Q m512 zmm k zmm
|
|
// VPERMI2Q m512 zmm zmm
|
|
// VPERMI2Q zmm zmm k zmm
|
|
// VPERMI2Q zmm zmm zmm
|
|
func VPERMI2Q(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMI2Q.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPERMI2Q_BCST: Full Permute of Quadwords From Two Tables Overwriting the Index (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMI2Q.BCST m64 xmm k xmm
|
|
// VPERMI2Q.BCST m64 xmm xmm
|
|
// VPERMI2Q.BCST m64 ymm k ymm
|
|
// VPERMI2Q.BCST m64 ymm ymm
|
|
// VPERMI2Q.BCST m64 zmm k zmm
|
|
// VPERMI2Q.BCST m64 zmm zmm
|
|
func VPERMI2Q_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMI2Q.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPERMI2Q_BCST_Z: Full Permute of Quadwords From Two Tables Overwriting the Index (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMI2Q.BCST.Z m64 xmm k xmm
|
|
// VPERMI2Q.BCST.Z m64 ymm k ymm
|
|
// VPERMI2Q.BCST.Z m64 zmm k zmm
|
|
func VPERMI2Q_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMI2Q.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPERMI2Q_Z: Full Permute of Quadwords From Two Tables Overwriting the Index (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMI2Q.Z m128 xmm k xmm
|
|
// VPERMI2Q.Z m256 ymm k ymm
|
|
// VPERMI2Q.Z xmm xmm k xmm
|
|
// VPERMI2Q.Z ymm ymm k ymm
|
|
// VPERMI2Q.Z m512 zmm k zmm
|
|
// VPERMI2Q.Z zmm zmm k zmm
|
|
func VPERMI2Q_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMI2Q.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPERMI2W: Full Permute of Words From Two Tables Overwriting the Index.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMI2W m128 xmm k xmm
|
|
// VPERMI2W m128 xmm xmm
|
|
// VPERMI2W m256 ymm k ymm
|
|
// VPERMI2W m256 ymm ymm
|
|
// VPERMI2W xmm xmm k xmm
|
|
// VPERMI2W xmm xmm xmm
|
|
// VPERMI2W ymm ymm k ymm
|
|
// VPERMI2W ymm ymm ymm
|
|
// VPERMI2W m512 zmm k zmm
|
|
// VPERMI2W m512 zmm zmm
|
|
// VPERMI2W zmm zmm k zmm
|
|
// VPERMI2W zmm zmm zmm
|
|
func VPERMI2W(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMI2W.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPERMI2W_Z: Full Permute of Words From Two Tables Overwriting the Index (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMI2W.Z m128 xmm k xmm
|
|
// VPERMI2W.Z m256 ymm k ymm
|
|
// VPERMI2W.Z xmm xmm k xmm
|
|
// VPERMI2W.Z ymm ymm k ymm
|
|
// VPERMI2W.Z m512 zmm k zmm
|
|
// VPERMI2W.Z zmm zmm k zmm
|
|
func VPERMI2W_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMI2W.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPERMILPD: Permute Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMILPD imm8 m128 xmm
|
|
// VPERMILPD imm8 m256 ymm
|
|
// VPERMILPD imm8 xmm xmm
|
|
// VPERMILPD imm8 ymm ymm
|
|
// VPERMILPD m128 xmm xmm
|
|
// VPERMILPD m256 ymm ymm
|
|
// VPERMILPD xmm xmm xmm
|
|
// VPERMILPD ymm ymm ymm
|
|
// VPERMILPD imm8 m128 k xmm
|
|
// VPERMILPD imm8 m256 k ymm
|
|
// VPERMILPD imm8 xmm k xmm
|
|
// VPERMILPD imm8 ymm k ymm
|
|
// VPERMILPD m128 xmm k xmm
|
|
// VPERMILPD m256 ymm k ymm
|
|
// VPERMILPD xmm xmm k xmm
|
|
// VPERMILPD ymm ymm k ymm
|
|
// VPERMILPD imm8 m512 k zmm
|
|
// VPERMILPD imm8 m512 zmm
|
|
// VPERMILPD imm8 zmm k zmm
|
|
// VPERMILPD imm8 zmm zmm
|
|
// VPERMILPD m512 zmm k zmm
|
|
// VPERMILPD m512 zmm zmm
|
|
// VPERMILPD zmm zmm k zmm
|
|
// VPERMILPD zmm zmm zmm
|
|
func VPERMILPD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMILPD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPERMILPD_BCST: Permute Double-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMILPD.BCST imm8 m64 k xmm
|
|
// VPERMILPD.BCST imm8 m64 k ymm
|
|
// VPERMILPD.BCST imm8 m64 xmm
|
|
// VPERMILPD.BCST imm8 m64 ymm
|
|
// VPERMILPD.BCST m64 xmm k xmm
|
|
// VPERMILPD.BCST m64 xmm xmm
|
|
// VPERMILPD.BCST m64 ymm k ymm
|
|
// VPERMILPD.BCST m64 ymm ymm
|
|
// VPERMILPD.BCST imm8 m64 k zmm
|
|
// VPERMILPD.BCST imm8 m64 zmm
|
|
// VPERMILPD.BCST m64 zmm k zmm
|
|
// VPERMILPD.BCST m64 zmm zmm
|
|
func VPERMILPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMILPD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPERMILPD_BCST_Z: Permute Double-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMILPD.BCST.Z imm8 m64 k xmm
|
|
// VPERMILPD.BCST.Z imm8 m64 k ymm
|
|
// VPERMILPD.BCST.Z m64 xmm k xmm
|
|
// VPERMILPD.BCST.Z m64 ymm k ymm
|
|
// VPERMILPD.BCST.Z imm8 m64 k zmm
|
|
// VPERMILPD.BCST.Z m64 zmm k zmm
|
|
func VPERMILPD_BCST_Z(im, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMILPD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{im, mxyz, k, xyz})
|
|
}
|
|
|
|
// VPERMILPD_Z: Permute Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMILPD.Z imm8 m128 k xmm
|
|
// VPERMILPD.Z imm8 m256 k ymm
|
|
// VPERMILPD.Z imm8 xmm k xmm
|
|
// VPERMILPD.Z imm8 ymm k ymm
|
|
// VPERMILPD.Z m128 xmm k xmm
|
|
// VPERMILPD.Z m256 ymm k ymm
|
|
// VPERMILPD.Z xmm xmm k xmm
|
|
// VPERMILPD.Z ymm ymm k ymm
|
|
// VPERMILPD.Z imm8 m512 k zmm
|
|
// VPERMILPD.Z imm8 zmm k zmm
|
|
// VPERMILPD.Z m512 zmm k zmm
|
|
// VPERMILPD.Z zmm zmm k zmm
|
|
func VPERMILPD_Z(imxyz, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMILPD.Forms(), sffxs{sffxZ}, []operand.Op{imxyz, mxyz, k, xyz})
|
|
}
|
|
|
|
// VPERMILPS: Permute Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMILPS imm8 m128 xmm
|
|
// VPERMILPS imm8 m256 ymm
|
|
// VPERMILPS imm8 xmm xmm
|
|
// VPERMILPS imm8 ymm ymm
|
|
// VPERMILPS m128 xmm xmm
|
|
// VPERMILPS m256 ymm ymm
|
|
// VPERMILPS xmm xmm xmm
|
|
// VPERMILPS ymm ymm ymm
|
|
// VPERMILPS imm8 m128 k xmm
|
|
// VPERMILPS imm8 m256 k ymm
|
|
// VPERMILPS imm8 xmm k xmm
|
|
// VPERMILPS imm8 ymm k ymm
|
|
// VPERMILPS m128 xmm k xmm
|
|
// VPERMILPS m256 ymm k ymm
|
|
// VPERMILPS xmm xmm k xmm
|
|
// VPERMILPS ymm ymm k ymm
|
|
// VPERMILPS imm8 m512 k zmm
|
|
// VPERMILPS imm8 m512 zmm
|
|
// VPERMILPS imm8 zmm k zmm
|
|
// VPERMILPS imm8 zmm zmm
|
|
// VPERMILPS m512 zmm k zmm
|
|
// VPERMILPS m512 zmm zmm
|
|
// VPERMILPS zmm zmm k zmm
|
|
// VPERMILPS zmm zmm zmm
|
|
func VPERMILPS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMILPS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPERMILPS_BCST: Permute Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMILPS.BCST imm8 m32 k xmm
|
|
// VPERMILPS.BCST imm8 m32 k ymm
|
|
// VPERMILPS.BCST imm8 m32 xmm
|
|
// VPERMILPS.BCST imm8 m32 ymm
|
|
// VPERMILPS.BCST m32 xmm k xmm
|
|
// VPERMILPS.BCST m32 xmm xmm
|
|
// VPERMILPS.BCST m32 ymm k ymm
|
|
// VPERMILPS.BCST m32 ymm ymm
|
|
// VPERMILPS.BCST imm8 m32 k zmm
|
|
// VPERMILPS.BCST imm8 m32 zmm
|
|
// VPERMILPS.BCST m32 zmm k zmm
|
|
// VPERMILPS.BCST m32 zmm zmm
|
|
func VPERMILPS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMILPS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPERMILPS_BCST_Z: Permute Single-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMILPS.BCST.Z imm8 m32 k xmm
|
|
// VPERMILPS.BCST.Z imm8 m32 k ymm
|
|
// VPERMILPS.BCST.Z m32 xmm k xmm
|
|
// VPERMILPS.BCST.Z m32 ymm k ymm
|
|
// VPERMILPS.BCST.Z imm8 m32 k zmm
|
|
// VPERMILPS.BCST.Z m32 zmm k zmm
|
|
func VPERMILPS_BCST_Z(im, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMILPS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{im, mxyz, k, xyz})
|
|
}
|
|
|
|
// VPERMILPS_Z: Permute Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMILPS.Z imm8 m128 k xmm
|
|
// VPERMILPS.Z imm8 m256 k ymm
|
|
// VPERMILPS.Z imm8 xmm k xmm
|
|
// VPERMILPS.Z imm8 ymm k ymm
|
|
// VPERMILPS.Z m128 xmm k xmm
|
|
// VPERMILPS.Z m256 ymm k ymm
|
|
// VPERMILPS.Z xmm xmm k xmm
|
|
// VPERMILPS.Z ymm ymm k ymm
|
|
// VPERMILPS.Z imm8 m512 k zmm
|
|
// VPERMILPS.Z imm8 zmm k zmm
|
|
// VPERMILPS.Z m512 zmm k zmm
|
|
// VPERMILPS.Z zmm zmm k zmm
|
|
func VPERMILPS_Z(imxyz, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMILPS.Forms(), sffxs{sffxZ}, []operand.Op{imxyz, mxyz, k, xyz})
|
|
}
|
|
|
|
// VPERMPD: Permute Double-Precision Floating-Point Elements.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMPD imm8 m256 ymm
|
|
// VPERMPD imm8 ymm ymm
|
|
// VPERMPD imm8 m256 k ymm
|
|
// VPERMPD imm8 ymm k ymm
|
|
// VPERMPD m256 ymm k ymm
|
|
// VPERMPD m256 ymm ymm
|
|
// VPERMPD ymm ymm k ymm
|
|
// VPERMPD ymm ymm ymm
|
|
// VPERMPD imm8 m512 k zmm
|
|
// VPERMPD imm8 m512 zmm
|
|
// VPERMPD imm8 zmm k zmm
|
|
// VPERMPD imm8 zmm zmm
|
|
// VPERMPD m512 zmm k zmm
|
|
// VPERMPD m512 zmm zmm
|
|
// VPERMPD zmm zmm k zmm
|
|
// VPERMPD zmm zmm zmm
|
|
func VPERMPD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMPD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPERMPD_BCST: Permute Double-Precision Floating-Point Elements (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMPD.BCST imm8 m64 k ymm
|
|
// VPERMPD.BCST imm8 m64 ymm
|
|
// VPERMPD.BCST m64 ymm k ymm
|
|
// VPERMPD.BCST m64 ymm ymm
|
|
// VPERMPD.BCST imm8 m64 k zmm
|
|
// VPERMPD.BCST imm8 m64 zmm
|
|
// VPERMPD.BCST m64 zmm k zmm
|
|
// VPERMPD.BCST m64 zmm zmm
|
|
func VPERMPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMPD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPERMPD_BCST_Z: Permute Double-Precision Floating-Point Elements (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMPD.BCST.Z imm8 m64 k ymm
|
|
// VPERMPD.BCST.Z m64 ymm k ymm
|
|
// VPERMPD.BCST.Z imm8 m64 k zmm
|
|
// VPERMPD.BCST.Z m64 zmm k zmm
|
|
func VPERMPD_BCST_Z(im, myz, k, yz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMPD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{im, myz, k, yz})
|
|
}
|
|
|
|
// VPERMPD_Z: Permute Double-Precision Floating-Point Elements (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMPD.Z imm8 m256 k ymm
|
|
// VPERMPD.Z imm8 ymm k ymm
|
|
// VPERMPD.Z m256 ymm k ymm
|
|
// VPERMPD.Z ymm ymm k ymm
|
|
// VPERMPD.Z imm8 m512 k zmm
|
|
// VPERMPD.Z imm8 zmm k zmm
|
|
// VPERMPD.Z m512 zmm k zmm
|
|
// VPERMPD.Z zmm zmm k zmm
|
|
func VPERMPD_Z(imyz, myz, k, yz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMPD.Forms(), sffxs{sffxZ}, []operand.Op{imyz, myz, k, yz})
|
|
}
|
|
|
|
// VPERMPS: Permute Single-Precision Floating-Point Elements.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMPS m256 ymm ymm
|
|
// VPERMPS ymm ymm ymm
|
|
// VPERMPS m256 ymm k ymm
|
|
// VPERMPS ymm ymm k ymm
|
|
// VPERMPS m512 zmm k zmm
|
|
// VPERMPS m512 zmm zmm
|
|
// VPERMPS zmm zmm k zmm
|
|
// VPERMPS zmm zmm zmm
|
|
func VPERMPS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMPS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPERMPS_BCST: Permute Single-Precision Floating-Point Elements (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMPS.BCST m32 ymm k ymm
|
|
// VPERMPS.BCST m32 ymm ymm
|
|
// VPERMPS.BCST m32 zmm k zmm
|
|
// VPERMPS.BCST m32 zmm zmm
|
|
func VPERMPS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMPS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPERMPS_BCST_Z: Permute Single-Precision Floating-Point Elements (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMPS.BCST.Z m32 ymm k ymm
|
|
// VPERMPS.BCST.Z m32 zmm k zmm
|
|
func VPERMPS_BCST_Z(m, yz, k, yz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMPS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, yz, k, yz1})
|
|
}
|
|
|
|
// VPERMPS_Z: Permute Single-Precision Floating-Point Elements (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMPS.Z m256 ymm k ymm
|
|
// VPERMPS.Z ymm ymm k ymm
|
|
// VPERMPS.Z m512 zmm k zmm
|
|
// VPERMPS.Z zmm zmm k zmm
|
|
func VPERMPS_Z(myz, yz, k, yz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMPS.Forms(), sffxs{sffxZ}, []operand.Op{myz, yz, k, yz1})
|
|
}
|
|
|
|
// VPERMQ: Permute Quadword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMQ imm8 m256 ymm
|
|
// VPERMQ imm8 ymm ymm
|
|
// VPERMQ imm8 m256 k ymm
|
|
// VPERMQ imm8 ymm k ymm
|
|
// VPERMQ m256 ymm k ymm
|
|
// VPERMQ m256 ymm ymm
|
|
// VPERMQ ymm ymm k ymm
|
|
// VPERMQ ymm ymm ymm
|
|
// VPERMQ imm8 m512 k zmm
|
|
// VPERMQ imm8 m512 zmm
|
|
// VPERMQ imm8 zmm k zmm
|
|
// VPERMQ imm8 zmm zmm
|
|
// VPERMQ m512 zmm k zmm
|
|
// VPERMQ m512 zmm zmm
|
|
// VPERMQ zmm zmm k zmm
|
|
// VPERMQ zmm zmm zmm
|
|
func VPERMQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPERMQ_BCST: Permute Quadword Integers (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMQ.BCST imm8 m64 k ymm
|
|
// VPERMQ.BCST imm8 m64 ymm
|
|
// VPERMQ.BCST m64 ymm k ymm
|
|
// VPERMQ.BCST m64 ymm ymm
|
|
// VPERMQ.BCST imm8 m64 k zmm
|
|
// VPERMQ.BCST imm8 m64 zmm
|
|
// VPERMQ.BCST m64 zmm k zmm
|
|
// VPERMQ.BCST m64 zmm zmm
|
|
func VPERMQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPERMQ_BCST_Z: Permute Quadword Integers (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMQ.BCST.Z imm8 m64 k ymm
|
|
// VPERMQ.BCST.Z m64 ymm k ymm
|
|
// VPERMQ.BCST.Z imm8 m64 k zmm
|
|
// VPERMQ.BCST.Z m64 zmm k zmm
|
|
func VPERMQ_BCST_Z(im, myz, k, yz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{im, myz, k, yz})
|
|
}
|
|
|
|
// VPERMQ_Z: Permute Quadword Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMQ.Z imm8 m256 k ymm
|
|
// VPERMQ.Z imm8 ymm k ymm
|
|
// VPERMQ.Z m256 ymm k ymm
|
|
// VPERMQ.Z ymm ymm k ymm
|
|
// VPERMQ.Z imm8 m512 k zmm
|
|
// VPERMQ.Z imm8 zmm k zmm
|
|
// VPERMQ.Z m512 zmm k zmm
|
|
// VPERMQ.Z zmm zmm k zmm
|
|
func VPERMQ_Z(imyz, myz, k, yz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMQ.Forms(), sffxs{sffxZ}, []operand.Op{imyz, myz, k, yz})
|
|
}
|
|
|
|
// VPERMT2B: Full Permute of Bytes From Two Tables Overwriting a Table.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMT2B m128 xmm k xmm
|
|
// VPERMT2B m128 xmm xmm
|
|
// VPERMT2B m256 ymm k ymm
|
|
// VPERMT2B m256 ymm ymm
|
|
// VPERMT2B xmm xmm k xmm
|
|
// VPERMT2B xmm xmm xmm
|
|
// VPERMT2B ymm ymm k ymm
|
|
// VPERMT2B ymm ymm ymm
|
|
// VPERMT2B m512 zmm k zmm
|
|
// VPERMT2B m512 zmm zmm
|
|
// VPERMT2B zmm zmm k zmm
|
|
// VPERMT2B zmm zmm zmm
|
|
func VPERMT2B(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMT2B.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPERMT2B_Z: Full Permute of Bytes From Two Tables Overwriting a Table (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMT2B.Z m128 xmm k xmm
|
|
// VPERMT2B.Z m256 ymm k ymm
|
|
// VPERMT2B.Z xmm xmm k xmm
|
|
// VPERMT2B.Z ymm ymm k ymm
|
|
// VPERMT2B.Z m512 zmm k zmm
|
|
// VPERMT2B.Z zmm zmm k zmm
|
|
func VPERMT2B_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMT2B.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPERMT2D: Full Permute of Doublewords From Two Tables Overwriting a Table.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMT2D m128 xmm k xmm
|
|
// VPERMT2D m128 xmm xmm
|
|
// VPERMT2D m256 ymm k ymm
|
|
// VPERMT2D m256 ymm ymm
|
|
// VPERMT2D xmm xmm k xmm
|
|
// VPERMT2D xmm xmm xmm
|
|
// VPERMT2D ymm ymm k ymm
|
|
// VPERMT2D ymm ymm ymm
|
|
// VPERMT2D m512 zmm k zmm
|
|
// VPERMT2D m512 zmm zmm
|
|
// VPERMT2D zmm zmm k zmm
|
|
// VPERMT2D zmm zmm zmm
|
|
func VPERMT2D(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMT2D.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPERMT2D_BCST: Full Permute of Doublewords From Two Tables Overwriting a Table (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMT2D.BCST m32 xmm k xmm
|
|
// VPERMT2D.BCST m32 xmm xmm
|
|
// VPERMT2D.BCST m32 ymm k ymm
|
|
// VPERMT2D.BCST m32 ymm ymm
|
|
// VPERMT2D.BCST m32 zmm k zmm
|
|
// VPERMT2D.BCST m32 zmm zmm
|
|
func VPERMT2D_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMT2D.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPERMT2D_BCST_Z: Full Permute of Doublewords From Two Tables Overwriting a Table (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMT2D.BCST.Z m32 xmm k xmm
|
|
// VPERMT2D.BCST.Z m32 ymm k ymm
|
|
// VPERMT2D.BCST.Z m32 zmm k zmm
|
|
func VPERMT2D_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMT2D.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPERMT2D_Z: Full Permute of Doublewords From Two Tables Overwriting a Table (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMT2D.Z m128 xmm k xmm
|
|
// VPERMT2D.Z m256 ymm k ymm
|
|
// VPERMT2D.Z xmm xmm k xmm
|
|
// VPERMT2D.Z ymm ymm k ymm
|
|
// VPERMT2D.Z m512 zmm k zmm
|
|
// VPERMT2D.Z zmm zmm k zmm
|
|
func VPERMT2D_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMT2D.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPERMT2PD: Full Permute of Double-Precision Floating-Point Values From Two Tables Overwriting a Table.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMT2PD m128 xmm k xmm
|
|
// VPERMT2PD m128 xmm xmm
|
|
// VPERMT2PD m256 ymm k ymm
|
|
// VPERMT2PD m256 ymm ymm
|
|
// VPERMT2PD xmm xmm k xmm
|
|
// VPERMT2PD xmm xmm xmm
|
|
// VPERMT2PD ymm ymm k ymm
|
|
// VPERMT2PD ymm ymm ymm
|
|
// VPERMT2PD m512 zmm k zmm
|
|
// VPERMT2PD m512 zmm zmm
|
|
// VPERMT2PD zmm zmm k zmm
|
|
// VPERMT2PD zmm zmm zmm
|
|
func VPERMT2PD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMT2PD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPERMT2PD_BCST: Full Permute of Double-Precision Floating-Point Values From Two Tables Overwriting a Table (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMT2PD.BCST m64 xmm k xmm
|
|
// VPERMT2PD.BCST m64 xmm xmm
|
|
// VPERMT2PD.BCST m64 ymm k ymm
|
|
// VPERMT2PD.BCST m64 ymm ymm
|
|
// VPERMT2PD.BCST m64 zmm k zmm
|
|
// VPERMT2PD.BCST m64 zmm zmm
|
|
func VPERMT2PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMT2PD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPERMT2PD_BCST_Z: Full Permute of Double-Precision Floating-Point Values From Two Tables Overwriting a Table (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMT2PD.BCST.Z m64 xmm k xmm
|
|
// VPERMT2PD.BCST.Z m64 ymm k ymm
|
|
// VPERMT2PD.BCST.Z m64 zmm k zmm
|
|
func VPERMT2PD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMT2PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPERMT2PD_Z: Full Permute of Double-Precision Floating-Point Values From Two Tables Overwriting a Table (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMT2PD.Z m128 xmm k xmm
|
|
// VPERMT2PD.Z m256 ymm k ymm
|
|
// VPERMT2PD.Z xmm xmm k xmm
|
|
// VPERMT2PD.Z ymm ymm k ymm
|
|
// VPERMT2PD.Z m512 zmm k zmm
|
|
// VPERMT2PD.Z zmm zmm k zmm
|
|
func VPERMT2PD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMT2PD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPERMT2PS: Full Permute of Single-Precision Floating-Point Values From Two Tables Overwriting a Table.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMT2PS m128 xmm k xmm
|
|
// VPERMT2PS m128 xmm xmm
|
|
// VPERMT2PS m256 ymm k ymm
|
|
// VPERMT2PS m256 ymm ymm
|
|
// VPERMT2PS xmm xmm k xmm
|
|
// VPERMT2PS xmm xmm xmm
|
|
// VPERMT2PS ymm ymm k ymm
|
|
// VPERMT2PS ymm ymm ymm
|
|
// VPERMT2PS m512 zmm k zmm
|
|
// VPERMT2PS m512 zmm zmm
|
|
// VPERMT2PS zmm zmm k zmm
|
|
// VPERMT2PS zmm zmm zmm
|
|
func VPERMT2PS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMT2PS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPERMT2PS_BCST: Full Permute of Single-Precision Floating-Point Values From Two Tables Overwriting a Table (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMT2PS.BCST m32 xmm k xmm
|
|
// VPERMT2PS.BCST m32 xmm xmm
|
|
// VPERMT2PS.BCST m32 ymm k ymm
|
|
// VPERMT2PS.BCST m32 ymm ymm
|
|
// VPERMT2PS.BCST m32 zmm k zmm
|
|
// VPERMT2PS.BCST m32 zmm zmm
|
|
func VPERMT2PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMT2PS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPERMT2PS_BCST_Z: Full Permute of Single-Precision Floating-Point Values From Two Tables Overwriting a Table (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMT2PS.BCST.Z m32 xmm k xmm
|
|
// VPERMT2PS.BCST.Z m32 ymm k ymm
|
|
// VPERMT2PS.BCST.Z m32 zmm k zmm
|
|
func VPERMT2PS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMT2PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPERMT2PS_Z: Full Permute of Single-Precision Floating-Point Values From Two Tables Overwriting a Table (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMT2PS.Z m128 xmm k xmm
|
|
// VPERMT2PS.Z m256 ymm k ymm
|
|
// VPERMT2PS.Z xmm xmm k xmm
|
|
// VPERMT2PS.Z ymm ymm k ymm
|
|
// VPERMT2PS.Z m512 zmm k zmm
|
|
// VPERMT2PS.Z zmm zmm k zmm
|
|
func VPERMT2PS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMT2PS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPERMT2Q: Full Permute of Quadwords From Two Tables Overwriting a Table.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMT2Q m128 xmm k xmm
|
|
// VPERMT2Q m128 xmm xmm
|
|
// VPERMT2Q m256 ymm k ymm
|
|
// VPERMT2Q m256 ymm ymm
|
|
// VPERMT2Q xmm xmm k xmm
|
|
// VPERMT2Q xmm xmm xmm
|
|
// VPERMT2Q ymm ymm k ymm
|
|
// VPERMT2Q ymm ymm ymm
|
|
// VPERMT2Q m512 zmm k zmm
|
|
// VPERMT2Q m512 zmm zmm
|
|
// VPERMT2Q zmm zmm k zmm
|
|
// VPERMT2Q zmm zmm zmm
|
|
func VPERMT2Q(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMT2Q.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPERMT2Q_BCST: Full Permute of Quadwords From Two Tables Overwriting a Table (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMT2Q.BCST m64 xmm k xmm
|
|
// VPERMT2Q.BCST m64 xmm xmm
|
|
// VPERMT2Q.BCST m64 ymm k ymm
|
|
// VPERMT2Q.BCST m64 ymm ymm
|
|
// VPERMT2Q.BCST m64 zmm k zmm
|
|
// VPERMT2Q.BCST m64 zmm zmm
|
|
func VPERMT2Q_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMT2Q.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPERMT2Q_BCST_Z: Full Permute of Quadwords From Two Tables Overwriting a Table (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMT2Q.BCST.Z m64 xmm k xmm
|
|
// VPERMT2Q.BCST.Z m64 ymm k ymm
|
|
// VPERMT2Q.BCST.Z m64 zmm k zmm
|
|
func VPERMT2Q_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMT2Q.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPERMT2Q_Z: Full Permute of Quadwords From Two Tables Overwriting a Table (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMT2Q.Z m128 xmm k xmm
|
|
// VPERMT2Q.Z m256 ymm k ymm
|
|
// VPERMT2Q.Z xmm xmm k xmm
|
|
// VPERMT2Q.Z ymm ymm k ymm
|
|
// VPERMT2Q.Z m512 zmm k zmm
|
|
// VPERMT2Q.Z zmm zmm k zmm
|
|
func VPERMT2Q_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMT2Q.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPERMT2W: Full Permute of Words From Two Tables Overwriting a Table.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMT2W m128 xmm k xmm
|
|
// VPERMT2W m128 xmm xmm
|
|
// VPERMT2W m256 ymm k ymm
|
|
// VPERMT2W m256 ymm ymm
|
|
// VPERMT2W xmm xmm k xmm
|
|
// VPERMT2W xmm xmm xmm
|
|
// VPERMT2W ymm ymm k ymm
|
|
// VPERMT2W ymm ymm ymm
|
|
// VPERMT2W m512 zmm k zmm
|
|
// VPERMT2W m512 zmm zmm
|
|
// VPERMT2W zmm zmm k zmm
|
|
// VPERMT2W zmm zmm zmm
|
|
func VPERMT2W(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMT2W.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPERMT2W_Z: Full Permute of Words From Two Tables Overwriting a Table (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMT2W.Z m128 xmm k xmm
|
|
// VPERMT2W.Z m256 ymm k ymm
|
|
// VPERMT2W.Z xmm xmm k xmm
|
|
// VPERMT2W.Z ymm ymm k ymm
|
|
// VPERMT2W.Z m512 zmm k zmm
|
|
// VPERMT2W.Z zmm zmm k zmm
|
|
func VPERMT2W_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMT2W.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPERMW: Permute Word Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMW m128 xmm k xmm
|
|
// VPERMW m128 xmm xmm
|
|
// VPERMW m256 ymm k ymm
|
|
// VPERMW m256 ymm ymm
|
|
// VPERMW xmm xmm k xmm
|
|
// VPERMW xmm xmm xmm
|
|
// VPERMW ymm ymm k ymm
|
|
// VPERMW ymm ymm ymm
|
|
// VPERMW m512 zmm k zmm
|
|
// VPERMW m512 zmm zmm
|
|
// VPERMW zmm zmm k zmm
|
|
// VPERMW zmm zmm zmm
|
|
func VPERMW(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPERMW.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPERMW_Z: Permute Word Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPERMW.Z m128 xmm k xmm
|
|
// VPERMW.Z m256 ymm k ymm
|
|
// VPERMW.Z xmm xmm k xmm
|
|
// VPERMW.Z ymm ymm k ymm
|
|
// VPERMW.Z m512 zmm k zmm
|
|
// VPERMW.Z zmm zmm k zmm
|
|
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:
|
|
//
|
|
// VPEXPANDD m128 k xmm
|
|
// VPEXPANDD m128 xmm
|
|
// VPEXPANDD m256 k ymm
|
|
// VPEXPANDD m256 ymm
|
|
// VPEXPANDD xmm k xmm
|
|
// VPEXPANDD xmm xmm
|
|
// VPEXPANDD ymm k ymm
|
|
// VPEXPANDD ymm ymm
|
|
// VPEXPANDD m512 k zmm
|
|
// VPEXPANDD m512 zmm
|
|
// VPEXPANDD zmm k zmm
|
|
// VPEXPANDD zmm zmm
|
|
func VPEXPANDD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPEXPANDD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPEXPANDD_Z: Load Sparse Packed Doubleword Integer Values from Dense Memory/Register (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPEXPANDD.Z m128 k xmm
|
|
// VPEXPANDD.Z m256 k ymm
|
|
// VPEXPANDD.Z xmm k xmm
|
|
// VPEXPANDD.Z ymm k ymm
|
|
// VPEXPANDD.Z m512 k zmm
|
|
// VPEXPANDD.Z zmm k zmm
|
|
func VPEXPANDD_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPEXPANDD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz})
|
|
}
|
|
|
|
// VPEXPANDQ: Load Sparse Packed Quadword Integer Values from Dense Memory/Register.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPEXPANDQ m128 k xmm
|
|
// VPEXPANDQ m128 xmm
|
|
// VPEXPANDQ m256 k ymm
|
|
// VPEXPANDQ m256 ymm
|
|
// VPEXPANDQ xmm k xmm
|
|
// VPEXPANDQ xmm xmm
|
|
// VPEXPANDQ ymm k ymm
|
|
// VPEXPANDQ ymm ymm
|
|
// VPEXPANDQ m512 k zmm
|
|
// VPEXPANDQ m512 zmm
|
|
// VPEXPANDQ zmm k zmm
|
|
// VPEXPANDQ zmm zmm
|
|
func VPEXPANDQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPEXPANDQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPEXPANDQ_Z: Load Sparse Packed Quadword Integer Values from Dense Memory/Register (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPEXPANDQ.Z m128 k xmm
|
|
// VPEXPANDQ.Z m256 k ymm
|
|
// VPEXPANDQ.Z xmm k xmm
|
|
// VPEXPANDQ.Z ymm k ymm
|
|
// VPEXPANDQ.Z m512 k zmm
|
|
// VPEXPANDQ.Z zmm k zmm
|
|
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:
|
|
//
|
|
// VPEXTRB imm8 xmm m8
|
|
// VPEXTRB imm8 xmm r32
|
|
func VPEXTRB(i, x, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPEXTRB.Forms(), sffxs{}, []operand.Op{i, x, mr})
|
|
}
|
|
|
|
// VPEXTRD: Extract Doubleword.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPEXTRD imm8 xmm m32
|
|
// VPEXTRD imm8 xmm r32
|
|
func VPEXTRD(i, x, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPEXTRD.Forms(), sffxs{}, []operand.Op{i, x, mr})
|
|
}
|
|
|
|
// VPEXTRQ: Extract Quadword.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPEXTRQ imm8 xmm m64
|
|
// VPEXTRQ imm8 xmm r64
|
|
func VPEXTRQ(i, x, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPEXTRQ.Forms(), sffxs{}, []operand.Op{i, x, mr})
|
|
}
|
|
|
|
// VPEXTRW: Extract Word.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPEXTRW imm8 xmm m16
|
|
// VPEXTRW imm8 xmm r32
|
|
func VPEXTRW(i, x, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPEXTRW.Forms(), sffxs{}, []operand.Op{i, x, mr})
|
|
}
|
|
|
|
// VPGATHERDD: Gather Packed Doubleword Values Using Signed Doubleword Indices.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPGATHERDD xmm vm32x xmm
|
|
// VPGATHERDD ymm vm32y ymm
|
|
// VPGATHERDD vm32x k xmm
|
|
// VPGATHERDD vm32y k ymm
|
|
// VPGATHERDD vm32z k zmm
|
|
func VPGATHERDD(vxy, kv, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPGATHERDD.Forms(), sffxs{}, []operand.Op{vxy, kv, xyz})
|
|
}
|
|
|
|
// VPGATHERDQ: Gather Packed Quadword Values Using Signed Doubleword Indices.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPGATHERDQ xmm vm32x xmm
|
|
// VPGATHERDQ ymm vm32x ymm
|
|
// VPGATHERDQ vm32x k xmm
|
|
// VPGATHERDQ vm32x k ymm
|
|
// VPGATHERDQ vm32y k zmm
|
|
func VPGATHERDQ(vxy, kv, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPGATHERDQ.Forms(), sffxs{}, []operand.Op{vxy, kv, xyz})
|
|
}
|
|
|
|
// VPGATHERQD: Gather Packed Doubleword Values Using Signed Quadword Indices.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPGATHERQD xmm vm64x xmm
|
|
// VPGATHERQD xmm vm64y xmm
|
|
// VPGATHERQD vm64x k xmm
|
|
// VPGATHERQD vm64y k xmm
|
|
// VPGATHERQD vm64z k ymm
|
|
func VPGATHERQD(vx, kv, xy operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPGATHERQD.Forms(), sffxs{}, []operand.Op{vx, kv, xy})
|
|
}
|
|
|
|
// VPGATHERQQ: Gather Packed Quadword Values Using Signed Quadword Indices.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPGATHERQQ xmm vm64x xmm
|
|
// VPGATHERQQ ymm vm64y ymm
|
|
// VPGATHERQQ vm64x k xmm
|
|
// VPGATHERQQ vm64y k ymm
|
|
// VPGATHERQQ vm64z k zmm
|
|
func VPGATHERQQ(vxy, kv, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPGATHERQQ.Forms(), sffxs{}, []operand.Op{vxy, kv, xyz})
|
|
}
|
|
|
|
// VPHADDD: Packed Horizontal Add Doubleword Integer.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPHADDD m256 ymm ymm
|
|
// VPHADDD ymm ymm ymm
|
|
// VPHADDD m128 xmm xmm
|
|
// VPHADDD xmm xmm xmm
|
|
func VPHADDD(mxy, xy, xy1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPHADDD.Forms(), sffxs{}, []operand.Op{mxy, xy, xy1})
|
|
}
|
|
|
|
// VPHADDSW: Packed Horizontal Add Signed Word Integers with Signed Saturation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPHADDSW m256 ymm ymm
|
|
// VPHADDSW ymm ymm ymm
|
|
// VPHADDSW m128 xmm xmm
|
|
// VPHADDSW xmm xmm xmm
|
|
func VPHADDSW(mxy, xy, xy1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPHADDSW.Forms(), sffxs{}, []operand.Op{mxy, xy, xy1})
|
|
}
|
|
|
|
// VPHADDW: Packed Horizontal Add Word Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPHADDW m256 ymm ymm
|
|
// VPHADDW ymm ymm ymm
|
|
// VPHADDW m128 xmm xmm
|
|
// VPHADDW xmm xmm xmm
|
|
func VPHADDW(mxy, xy, xy1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPHADDW.Forms(), sffxs{}, []operand.Op{mxy, xy, xy1})
|
|
}
|
|
|
|
// VPHMINPOSUW: Packed Horizontal Minimum of Unsigned Word Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPHMINPOSUW m128 xmm
|
|
// VPHMINPOSUW xmm xmm
|
|
func VPHMINPOSUW(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPHMINPOSUW.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// VPHSUBD: Packed Horizontal Subtract Doubleword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPHSUBD m256 ymm ymm
|
|
// VPHSUBD ymm ymm ymm
|
|
// VPHSUBD m128 xmm xmm
|
|
// VPHSUBD xmm xmm xmm
|
|
func VPHSUBD(mxy, xy, xy1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPHSUBD.Forms(), sffxs{}, []operand.Op{mxy, xy, xy1})
|
|
}
|
|
|
|
// VPHSUBSW: Packed Horizontal Subtract Signed Word Integers with Signed Saturation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPHSUBSW m256 ymm ymm
|
|
// VPHSUBSW ymm ymm ymm
|
|
// VPHSUBSW m128 xmm xmm
|
|
// VPHSUBSW xmm xmm xmm
|
|
func VPHSUBSW(mxy, xy, xy1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPHSUBSW.Forms(), sffxs{}, []operand.Op{mxy, xy, xy1})
|
|
}
|
|
|
|
// VPHSUBW: Packed Horizontal Subtract Word Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPHSUBW m256 ymm ymm
|
|
// VPHSUBW ymm ymm ymm
|
|
// VPHSUBW m128 xmm xmm
|
|
// VPHSUBW xmm xmm xmm
|
|
func VPHSUBW(mxy, xy, xy1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPHSUBW.Forms(), sffxs{}, []operand.Op{mxy, xy, xy1})
|
|
}
|
|
|
|
// VPINSRB: Insert Byte.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPINSRB imm8 m8 xmm xmm
|
|
// VPINSRB imm8 r32 xmm xmm
|
|
func VPINSRB(i, mr, x, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPINSRB.Forms(), sffxs{}, []operand.Op{i, mr, x, x1})
|
|
}
|
|
|
|
// VPINSRD: Insert Doubleword.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPINSRD imm8 m32 xmm xmm
|
|
// VPINSRD imm8 r32 xmm xmm
|
|
func VPINSRD(i, mr, x, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPINSRD.Forms(), sffxs{}, []operand.Op{i, mr, x, x1})
|
|
}
|
|
|
|
// VPINSRQ: Insert Quadword.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPINSRQ imm8 m64 xmm xmm
|
|
// VPINSRQ imm8 r64 xmm xmm
|
|
func VPINSRQ(i, mr, x, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPINSRQ.Forms(), sffxs{}, []operand.Op{i, mr, x, x1})
|
|
}
|
|
|
|
// VPINSRW: Insert Word.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPINSRW imm8 m16 xmm xmm
|
|
// VPINSRW imm8 r32 xmm xmm
|
|
func VPINSRW(i, mr, x, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPINSRW.Forms(), sffxs{}, []operand.Op{i, mr, x, x1})
|
|
}
|
|
|
|
// VPLZCNTD: Count the Number of Leading Zero Bits for Packed Doubleword Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPLZCNTD m128 k xmm
|
|
// VPLZCNTD m128 xmm
|
|
// VPLZCNTD m256 k ymm
|
|
// VPLZCNTD m256 ymm
|
|
// VPLZCNTD xmm k xmm
|
|
// VPLZCNTD xmm xmm
|
|
// VPLZCNTD ymm k ymm
|
|
// VPLZCNTD ymm ymm
|
|
// VPLZCNTD m512 k zmm
|
|
// VPLZCNTD m512 zmm
|
|
// VPLZCNTD zmm k zmm
|
|
// VPLZCNTD zmm zmm
|
|
func VPLZCNTD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPLZCNTD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPLZCNTD_BCST: Count the Number of Leading Zero Bits for Packed Doubleword Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPLZCNTD.BCST m32 k xmm
|
|
// VPLZCNTD.BCST m32 k ymm
|
|
// VPLZCNTD.BCST m32 xmm
|
|
// VPLZCNTD.BCST m32 ymm
|
|
// VPLZCNTD.BCST m32 k zmm
|
|
// VPLZCNTD.BCST m32 zmm
|
|
func VPLZCNTD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPLZCNTD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPLZCNTD_BCST_Z: Count the Number of Leading Zero Bits for Packed Doubleword Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPLZCNTD.BCST.Z m32 k xmm
|
|
// VPLZCNTD.BCST.Z m32 k ymm
|
|
// VPLZCNTD.BCST.Z m32 k zmm
|
|
func VPLZCNTD_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPLZCNTD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz})
|
|
}
|
|
|
|
// VPLZCNTD_Z: Count the Number of Leading Zero Bits for Packed Doubleword Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPLZCNTD.Z m128 k xmm
|
|
// VPLZCNTD.Z m256 k ymm
|
|
// VPLZCNTD.Z xmm k xmm
|
|
// VPLZCNTD.Z ymm k ymm
|
|
// VPLZCNTD.Z m512 k zmm
|
|
// VPLZCNTD.Z zmm k zmm
|
|
func VPLZCNTD_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPLZCNTD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz})
|
|
}
|
|
|
|
// VPLZCNTQ: Count the Number of Leading Zero Bits for Packed Quadword Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPLZCNTQ m128 k xmm
|
|
// VPLZCNTQ m128 xmm
|
|
// VPLZCNTQ m256 k ymm
|
|
// VPLZCNTQ m256 ymm
|
|
// VPLZCNTQ xmm k xmm
|
|
// VPLZCNTQ xmm xmm
|
|
// VPLZCNTQ ymm k ymm
|
|
// VPLZCNTQ ymm ymm
|
|
// VPLZCNTQ m512 k zmm
|
|
// VPLZCNTQ m512 zmm
|
|
// VPLZCNTQ zmm k zmm
|
|
// VPLZCNTQ zmm zmm
|
|
func VPLZCNTQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPLZCNTQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPLZCNTQ_BCST: Count the Number of Leading Zero Bits for Packed Quadword Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPLZCNTQ.BCST m64 k xmm
|
|
// VPLZCNTQ.BCST m64 k ymm
|
|
// VPLZCNTQ.BCST m64 xmm
|
|
// VPLZCNTQ.BCST m64 ymm
|
|
// VPLZCNTQ.BCST m64 k zmm
|
|
// VPLZCNTQ.BCST m64 zmm
|
|
func VPLZCNTQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPLZCNTQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPLZCNTQ_BCST_Z: Count the Number of Leading Zero Bits for Packed Quadword Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPLZCNTQ.BCST.Z m64 k xmm
|
|
// VPLZCNTQ.BCST.Z m64 k ymm
|
|
// VPLZCNTQ.BCST.Z m64 k zmm
|
|
func VPLZCNTQ_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPLZCNTQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz})
|
|
}
|
|
|
|
// VPLZCNTQ_Z: Count the Number of Leading Zero Bits for Packed Quadword Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPLZCNTQ.Z m128 k xmm
|
|
// VPLZCNTQ.Z m256 k ymm
|
|
// VPLZCNTQ.Z xmm k xmm
|
|
// VPLZCNTQ.Z ymm k ymm
|
|
// VPLZCNTQ.Z m512 k zmm
|
|
// VPLZCNTQ.Z zmm k zmm
|
|
func VPLZCNTQ_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPLZCNTQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz})
|
|
}
|
|
|
|
// VPMADD52HUQ: Packed Multiply of Unsigned 52-bit Unsigned Integers and Add High 52-bit Products to Quadword Accumulators.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMADD52HUQ m128 xmm k xmm
|
|
// VPMADD52HUQ m128 xmm xmm
|
|
// VPMADD52HUQ m256 ymm k ymm
|
|
// VPMADD52HUQ m256 ymm ymm
|
|
// VPMADD52HUQ xmm xmm k xmm
|
|
// VPMADD52HUQ xmm xmm xmm
|
|
// VPMADD52HUQ ymm ymm k ymm
|
|
// VPMADD52HUQ ymm ymm ymm
|
|
// VPMADD52HUQ m512 zmm k zmm
|
|
// VPMADD52HUQ m512 zmm zmm
|
|
// VPMADD52HUQ zmm zmm k zmm
|
|
// VPMADD52HUQ zmm zmm zmm
|
|
func VPMADD52HUQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMADD52HUQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMADD52HUQ_BCST: Packed Multiply of Unsigned 52-bit Unsigned Integers and Add High 52-bit Products to Quadword Accumulators (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMADD52HUQ.BCST m64 xmm k xmm
|
|
// VPMADD52HUQ.BCST m64 xmm xmm
|
|
// VPMADD52HUQ.BCST m64 ymm k ymm
|
|
// VPMADD52HUQ.BCST m64 ymm ymm
|
|
// VPMADD52HUQ.BCST m64 zmm k zmm
|
|
// VPMADD52HUQ.BCST m64 zmm zmm
|
|
func VPMADD52HUQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMADD52HUQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPMADD52HUQ_BCST_Z: Packed Multiply of Unsigned 52-bit Unsigned Integers and Add High 52-bit Products to Quadword Accumulators (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMADD52HUQ.BCST.Z m64 xmm k xmm
|
|
// VPMADD52HUQ.BCST.Z m64 ymm k ymm
|
|
// VPMADD52HUQ.BCST.Z m64 zmm k zmm
|
|
func VPMADD52HUQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMADD52HUQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPMADD52HUQ_Z: Packed Multiply of Unsigned 52-bit Unsigned Integers and Add High 52-bit Products to Quadword Accumulators (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMADD52HUQ.Z m128 xmm k xmm
|
|
// VPMADD52HUQ.Z m256 ymm k ymm
|
|
// VPMADD52HUQ.Z xmm xmm k xmm
|
|
// VPMADD52HUQ.Z ymm ymm k ymm
|
|
// VPMADD52HUQ.Z m512 zmm k zmm
|
|
// VPMADD52HUQ.Z zmm zmm k zmm
|
|
func VPMADD52HUQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMADD52HUQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPMADD52LUQ: Packed Multiply of Unsigned 52-bit Integers and Add the Low 52-bit Products to Quadword Accumulators.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMADD52LUQ m128 xmm k xmm
|
|
// VPMADD52LUQ m128 xmm xmm
|
|
// VPMADD52LUQ m256 ymm k ymm
|
|
// VPMADD52LUQ m256 ymm ymm
|
|
// VPMADD52LUQ xmm xmm k xmm
|
|
// VPMADD52LUQ xmm xmm xmm
|
|
// VPMADD52LUQ ymm ymm k ymm
|
|
// VPMADD52LUQ ymm ymm ymm
|
|
// VPMADD52LUQ m512 zmm k zmm
|
|
// VPMADD52LUQ m512 zmm zmm
|
|
// VPMADD52LUQ zmm zmm k zmm
|
|
// VPMADD52LUQ zmm zmm zmm
|
|
func VPMADD52LUQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMADD52LUQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMADD52LUQ_BCST: Packed Multiply of Unsigned 52-bit Integers and Add the Low 52-bit Products to Quadword Accumulators (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMADD52LUQ.BCST m64 xmm k xmm
|
|
// VPMADD52LUQ.BCST m64 xmm xmm
|
|
// VPMADD52LUQ.BCST m64 ymm k ymm
|
|
// VPMADD52LUQ.BCST m64 ymm ymm
|
|
// VPMADD52LUQ.BCST m64 zmm k zmm
|
|
// VPMADD52LUQ.BCST m64 zmm zmm
|
|
func VPMADD52LUQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMADD52LUQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPMADD52LUQ_BCST_Z: Packed Multiply of Unsigned 52-bit Integers and Add the Low 52-bit Products to Quadword Accumulators (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMADD52LUQ.BCST.Z m64 xmm k xmm
|
|
// VPMADD52LUQ.BCST.Z m64 ymm k ymm
|
|
// VPMADD52LUQ.BCST.Z m64 zmm k zmm
|
|
func VPMADD52LUQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMADD52LUQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPMADD52LUQ_Z: Packed Multiply of Unsigned 52-bit Integers and Add the Low 52-bit Products to Quadword Accumulators (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMADD52LUQ.Z m128 xmm k xmm
|
|
// VPMADD52LUQ.Z m256 ymm k ymm
|
|
// VPMADD52LUQ.Z xmm xmm k xmm
|
|
// VPMADD52LUQ.Z ymm ymm k ymm
|
|
// VPMADD52LUQ.Z m512 zmm k zmm
|
|
// VPMADD52LUQ.Z zmm zmm k zmm
|
|
func VPMADD52LUQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMADD52LUQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPMADDUBSW: Multiply and Add Packed Signed and Unsigned Byte Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMADDUBSW m256 ymm ymm
|
|
// VPMADDUBSW ymm ymm ymm
|
|
// VPMADDUBSW m128 xmm xmm
|
|
// VPMADDUBSW xmm xmm xmm
|
|
// VPMADDUBSW m128 xmm k xmm
|
|
// VPMADDUBSW m256 ymm k ymm
|
|
// VPMADDUBSW xmm xmm k xmm
|
|
// VPMADDUBSW ymm ymm k ymm
|
|
// VPMADDUBSW m512 zmm k zmm
|
|
// VPMADDUBSW m512 zmm zmm
|
|
// VPMADDUBSW zmm zmm k zmm
|
|
// VPMADDUBSW zmm zmm zmm
|
|
func VPMADDUBSW(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMADDUBSW.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMADDUBSW_Z: Multiply and Add Packed Signed and Unsigned Byte Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMADDUBSW.Z m128 xmm k xmm
|
|
// VPMADDUBSW.Z m256 ymm k ymm
|
|
// VPMADDUBSW.Z xmm xmm k xmm
|
|
// VPMADDUBSW.Z ymm ymm k ymm
|
|
// VPMADDUBSW.Z m512 zmm k zmm
|
|
// VPMADDUBSW.Z zmm zmm k zmm
|
|
func VPMADDUBSW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMADDUBSW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPMADDWD: Multiply and Add Packed Signed Word Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMADDWD m256 ymm ymm
|
|
// VPMADDWD ymm ymm ymm
|
|
// VPMADDWD m128 xmm xmm
|
|
// VPMADDWD xmm xmm xmm
|
|
// VPMADDWD m128 xmm k xmm
|
|
// VPMADDWD m256 ymm k ymm
|
|
// VPMADDWD xmm xmm k xmm
|
|
// VPMADDWD ymm ymm k ymm
|
|
// VPMADDWD m512 zmm k zmm
|
|
// VPMADDWD m512 zmm zmm
|
|
// VPMADDWD zmm zmm k zmm
|
|
// VPMADDWD zmm zmm zmm
|
|
func VPMADDWD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMADDWD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMADDWD_Z: Multiply and Add Packed Signed Word Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMADDWD.Z m128 xmm k xmm
|
|
// VPMADDWD.Z m256 ymm k ymm
|
|
// VPMADDWD.Z xmm xmm k xmm
|
|
// VPMADDWD.Z ymm ymm k ymm
|
|
// VPMADDWD.Z m512 zmm k zmm
|
|
// VPMADDWD.Z zmm zmm k zmm
|
|
func VPMADDWD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMADDWD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPMASKMOVD: Conditional Move Packed Doubleword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMASKMOVD m128 xmm xmm
|
|
// VPMASKMOVD m256 ymm ymm
|
|
// VPMASKMOVD xmm xmm m128
|
|
// VPMASKMOVD ymm ymm m256
|
|
func VPMASKMOVD(mxy, xy, mxy1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMASKMOVD.Forms(), sffxs{}, []operand.Op{mxy, xy, mxy1})
|
|
}
|
|
|
|
// VPMASKMOVQ: Conditional Move Packed Quadword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMASKMOVQ m128 xmm xmm
|
|
// VPMASKMOVQ m256 ymm ymm
|
|
// VPMASKMOVQ xmm xmm m128
|
|
// VPMASKMOVQ ymm ymm m256
|
|
func VPMASKMOVQ(mxy, xy, mxy1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMASKMOVQ.Forms(), sffxs{}, []operand.Op{mxy, xy, mxy1})
|
|
}
|
|
|
|
// VPMAXSB: Maximum of Packed Signed Byte Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMAXSB m256 ymm ymm
|
|
// VPMAXSB ymm ymm ymm
|
|
// VPMAXSB m128 xmm xmm
|
|
// VPMAXSB xmm xmm xmm
|
|
// VPMAXSB m128 xmm k xmm
|
|
// VPMAXSB m256 ymm k ymm
|
|
// VPMAXSB xmm xmm k xmm
|
|
// VPMAXSB ymm ymm k ymm
|
|
// VPMAXSB m512 zmm k zmm
|
|
// VPMAXSB m512 zmm zmm
|
|
// VPMAXSB zmm zmm k zmm
|
|
// VPMAXSB zmm zmm zmm
|
|
func VPMAXSB(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMAXSB.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMAXSB_Z: Maximum of Packed Signed Byte Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMAXSB.Z m128 xmm k xmm
|
|
// VPMAXSB.Z m256 ymm k ymm
|
|
// VPMAXSB.Z xmm xmm k xmm
|
|
// VPMAXSB.Z ymm ymm k ymm
|
|
// VPMAXSB.Z m512 zmm k zmm
|
|
// VPMAXSB.Z zmm zmm k zmm
|
|
func VPMAXSB_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMAXSB.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPMAXSD: Maximum of Packed Signed Doubleword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMAXSD m256 ymm ymm
|
|
// VPMAXSD ymm ymm ymm
|
|
// VPMAXSD m128 xmm xmm
|
|
// VPMAXSD xmm xmm xmm
|
|
// VPMAXSD m128 xmm k xmm
|
|
// VPMAXSD m256 ymm k ymm
|
|
// VPMAXSD xmm xmm k xmm
|
|
// VPMAXSD ymm ymm k ymm
|
|
// VPMAXSD m512 zmm k zmm
|
|
// VPMAXSD m512 zmm zmm
|
|
// VPMAXSD zmm zmm k zmm
|
|
// VPMAXSD zmm zmm zmm
|
|
func VPMAXSD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMAXSD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMAXSD_BCST: Maximum of Packed Signed Doubleword Integers (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMAXSD.BCST m32 xmm k xmm
|
|
// VPMAXSD.BCST m32 xmm xmm
|
|
// VPMAXSD.BCST m32 ymm k ymm
|
|
// VPMAXSD.BCST m32 ymm ymm
|
|
// VPMAXSD.BCST m32 zmm k zmm
|
|
// VPMAXSD.BCST m32 zmm zmm
|
|
func VPMAXSD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMAXSD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPMAXSD_BCST_Z: Maximum of Packed Signed Doubleword Integers (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMAXSD.BCST.Z m32 xmm k xmm
|
|
// VPMAXSD.BCST.Z m32 ymm k ymm
|
|
// VPMAXSD.BCST.Z m32 zmm k zmm
|
|
func VPMAXSD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMAXSD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPMAXSD_Z: Maximum of Packed Signed Doubleword Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMAXSD.Z m128 xmm k xmm
|
|
// VPMAXSD.Z m256 ymm k ymm
|
|
// VPMAXSD.Z xmm xmm k xmm
|
|
// VPMAXSD.Z ymm ymm k ymm
|
|
// VPMAXSD.Z m512 zmm k zmm
|
|
// VPMAXSD.Z zmm zmm k zmm
|
|
func VPMAXSD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMAXSD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPMAXSQ: Maximum of Packed Signed Quadword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMAXSQ m128 xmm k xmm
|
|
// VPMAXSQ m128 xmm xmm
|
|
// VPMAXSQ m256 ymm k ymm
|
|
// VPMAXSQ m256 ymm ymm
|
|
// VPMAXSQ xmm xmm k xmm
|
|
// VPMAXSQ xmm xmm xmm
|
|
// VPMAXSQ ymm ymm k ymm
|
|
// VPMAXSQ ymm ymm ymm
|
|
// VPMAXSQ m512 zmm k zmm
|
|
// VPMAXSQ m512 zmm zmm
|
|
// VPMAXSQ zmm zmm k zmm
|
|
// VPMAXSQ zmm zmm zmm
|
|
func VPMAXSQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMAXSQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMAXSQ_BCST: Maximum of Packed Signed Quadword Integers (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMAXSQ.BCST m64 xmm k xmm
|
|
// VPMAXSQ.BCST m64 xmm xmm
|
|
// VPMAXSQ.BCST m64 ymm k ymm
|
|
// VPMAXSQ.BCST m64 ymm ymm
|
|
// VPMAXSQ.BCST m64 zmm k zmm
|
|
// VPMAXSQ.BCST m64 zmm zmm
|
|
func VPMAXSQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMAXSQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPMAXSQ_BCST_Z: Maximum of Packed Signed Quadword Integers (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMAXSQ.BCST.Z m64 xmm k xmm
|
|
// VPMAXSQ.BCST.Z m64 ymm k ymm
|
|
// VPMAXSQ.BCST.Z m64 zmm k zmm
|
|
func VPMAXSQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMAXSQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPMAXSQ_Z: Maximum of Packed Signed Quadword Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMAXSQ.Z m128 xmm k xmm
|
|
// VPMAXSQ.Z m256 ymm k ymm
|
|
// VPMAXSQ.Z xmm xmm k xmm
|
|
// VPMAXSQ.Z ymm ymm k ymm
|
|
// VPMAXSQ.Z m512 zmm k zmm
|
|
// VPMAXSQ.Z zmm zmm k zmm
|
|
func VPMAXSQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMAXSQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPMAXSW: Maximum of Packed Signed Word Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMAXSW m256 ymm ymm
|
|
// VPMAXSW ymm ymm ymm
|
|
// VPMAXSW m128 xmm xmm
|
|
// VPMAXSW xmm xmm xmm
|
|
// VPMAXSW m128 xmm k xmm
|
|
// VPMAXSW m256 ymm k ymm
|
|
// VPMAXSW xmm xmm k xmm
|
|
// VPMAXSW ymm ymm k ymm
|
|
// VPMAXSW m512 zmm k zmm
|
|
// VPMAXSW m512 zmm zmm
|
|
// VPMAXSW zmm zmm k zmm
|
|
// VPMAXSW zmm zmm zmm
|
|
func VPMAXSW(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMAXSW.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMAXSW_Z: Maximum of Packed Signed Word Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMAXSW.Z m128 xmm k xmm
|
|
// VPMAXSW.Z m256 ymm k ymm
|
|
// VPMAXSW.Z xmm xmm k xmm
|
|
// VPMAXSW.Z ymm ymm k ymm
|
|
// VPMAXSW.Z m512 zmm k zmm
|
|
// VPMAXSW.Z zmm zmm k zmm
|
|
func VPMAXSW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMAXSW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPMAXUB: Maximum of Packed Unsigned Byte Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMAXUB m256 ymm ymm
|
|
// VPMAXUB ymm ymm ymm
|
|
// VPMAXUB m128 xmm xmm
|
|
// VPMAXUB xmm xmm xmm
|
|
// VPMAXUB m128 xmm k xmm
|
|
// VPMAXUB m256 ymm k ymm
|
|
// VPMAXUB xmm xmm k xmm
|
|
// VPMAXUB ymm ymm k ymm
|
|
// VPMAXUB m512 zmm k zmm
|
|
// VPMAXUB m512 zmm zmm
|
|
// VPMAXUB zmm zmm k zmm
|
|
// VPMAXUB zmm zmm zmm
|
|
func VPMAXUB(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMAXUB.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMAXUB_Z: Maximum of Packed Unsigned Byte Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMAXUB.Z m128 xmm k xmm
|
|
// VPMAXUB.Z m256 ymm k ymm
|
|
// VPMAXUB.Z xmm xmm k xmm
|
|
// VPMAXUB.Z ymm ymm k ymm
|
|
// VPMAXUB.Z m512 zmm k zmm
|
|
// VPMAXUB.Z zmm zmm k zmm
|
|
func VPMAXUB_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMAXUB.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPMAXUD: Maximum of Packed Unsigned Doubleword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMAXUD m256 ymm ymm
|
|
// VPMAXUD ymm ymm ymm
|
|
// VPMAXUD m128 xmm xmm
|
|
// VPMAXUD xmm xmm xmm
|
|
// VPMAXUD m128 xmm k xmm
|
|
// VPMAXUD m256 ymm k ymm
|
|
// VPMAXUD xmm xmm k xmm
|
|
// VPMAXUD ymm ymm k ymm
|
|
// VPMAXUD m512 zmm k zmm
|
|
// VPMAXUD m512 zmm zmm
|
|
// VPMAXUD zmm zmm k zmm
|
|
// VPMAXUD zmm zmm zmm
|
|
func VPMAXUD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMAXUD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMAXUD_BCST: Maximum of Packed Unsigned Doubleword Integers (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMAXUD.BCST m32 xmm k xmm
|
|
// VPMAXUD.BCST m32 xmm xmm
|
|
// VPMAXUD.BCST m32 ymm k ymm
|
|
// VPMAXUD.BCST m32 ymm ymm
|
|
// VPMAXUD.BCST m32 zmm k zmm
|
|
// VPMAXUD.BCST m32 zmm zmm
|
|
func VPMAXUD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMAXUD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPMAXUD_BCST_Z: Maximum of Packed Unsigned Doubleword Integers (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMAXUD.BCST.Z m32 xmm k xmm
|
|
// VPMAXUD.BCST.Z m32 ymm k ymm
|
|
// VPMAXUD.BCST.Z m32 zmm k zmm
|
|
func VPMAXUD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMAXUD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPMAXUD_Z: Maximum of Packed Unsigned Doubleword Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMAXUD.Z m128 xmm k xmm
|
|
// VPMAXUD.Z m256 ymm k ymm
|
|
// VPMAXUD.Z xmm xmm k xmm
|
|
// VPMAXUD.Z ymm ymm k ymm
|
|
// VPMAXUD.Z m512 zmm k zmm
|
|
// VPMAXUD.Z zmm zmm k zmm
|
|
func VPMAXUD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMAXUD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPMAXUQ: Maximum of Packed Unsigned Quadword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMAXUQ m128 xmm k xmm
|
|
// VPMAXUQ m128 xmm xmm
|
|
// VPMAXUQ m256 ymm k ymm
|
|
// VPMAXUQ m256 ymm ymm
|
|
// VPMAXUQ xmm xmm k xmm
|
|
// VPMAXUQ xmm xmm xmm
|
|
// VPMAXUQ ymm ymm k ymm
|
|
// VPMAXUQ ymm ymm ymm
|
|
// VPMAXUQ m512 zmm k zmm
|
|
// VPMAXUQ m512 zmm zmm
|
|
// VPMAXUQ zmm zmm k zmm
|
|
// VPMAXUQ zmm zmm zmm
|
|
func VPMAXUQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMAXUQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMAXUQ_BCST: Maximum of Packed Unsigned Quadword Integers (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMAXUQ.BCST m64 xmm k xmm
|
|
// VPMAXUQ.BCST m64 xmm xmm
|
|
// VPMAXUQ.BCST m64 ymm k ymm
|
|
// VPMAXUQ.BCST m64 ymm ymm
|
|
// VPMAXUQ.BCST m64 zmm k zmm
|
|
// VPMAXUQ.BCST m64 zmm zmm
|
|
func VPMAXUQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMAXUQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPMAXUQ_BCST_Z: Maximum of Packed Unsigned Quadword Integers (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMAXUQ.BCST.Z m64 xmm k xmm
|
|
// VPMAXUQ.BCST.Z m64 ymm k ymm
|
|
// VPMAXUQ.BCST.Z m64 zmm k zmm
|
|
func VPMAXUQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMAXUQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPMAXUQ_Z: Maximum of Packed Unsigned Quadword Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMAXUQ.Z m128 xmm k xmm
|
|
// VPMAXUQ.Z m256 ymm k ymm
|
|
// VPMAXUQ.Z xmm xmm k xmm
|
|
// VPMAXUQ.Z ymm ymm k ymm
|
|
// VPMAXUQ.Z m512 zmm k zmm
|
|
// VPMAXUQ.Z zmm zmm k zmm
|
|
func VPMAXUQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMAXUQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPMAXUW: Maximum of Packed Unsigned Word Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMAXUW m256 ymm ymm
|
|
// VPMAXUW ymm ymm ymm
|
|
// VPMAXUW m128 xmm xmm
|
|
// VPMAXUW xmm xmm xmm
|
|
// VPMAXUW m128 xmm k xmm
|
|
// VPMAXUW m256 ymm k ymm
|
|
// VPMAXUW xmm xmm k xmm
|
|
// VPMAXUW ymm ymm k ymm
|
|
// VPMAXUW m512 zmm k zmm
|
|
// VPMAXUW m512 zmm zmm
|
|
// VPMAXUW zmm zmm k zmm
|
|
// VPMAXUW zmm zmm zmm
|
|
func VPMAXUW(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMAXUW.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMAXUW_Z: Maximum of Packed Unsigned Word Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMAXUW.Z m128 xmm k xmm
|
|
// VPMAXUW.Z m256 ymm k ymm
|
|
// VPMAXUW.Z xmm xmm k xmm
|
|
// VPMAXUW.Z ymm ymm k ymm
|
|
// VPMAXUW.Z m512 zmm k zmm
|
|
// VPMAXUW.Z zmm zmm k zmm
|
|
func VPMAXUW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMAXUW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPMINSB: Minimum of Packed Signed Byte Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMINSB m256 ymm ymm
|
|
// VPMINSB ymm ymm ymm
|
|
// VPMINSB m128 xmm xmm
|
|
// VPMINSB xmm xmm xmm
|
|
// VPMINSB m128 xmm k xmm
|
|
// VPMINSB m256 ymm k ymm
|
|
// VPMINSB xmm xmm k xmm
|
|
// VPMINSB ymm ymm k ymm
|
|
// VPMINSB m512 zmm k zmm
|
|
// VPMINSB m512 zmm zmm
|
|
// VPMINSB zmm zmm k zmm
|
|
// VPMINSB zmm zmm zmm
|
|
func VPMINSB(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMINSB.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMINSB_Z: Minimum of Packed Signed Byte Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMINSB.Z m128 xmm k xmm
|
|
// VPMINSB.Z m256 ymm k ymm
|
|
// VPMINSB.Z xmm xmm k xmm
|
|
// VPMINSB.Z ymm ymm k ymm
|
|
// VPMINSB.Z m512 zmm k zmm
|
|
// VPMINSB.Z zmm zmm k zmm
|
|
func VPMINSB_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMINSB.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPMINSD: Minimum of Packed Signed Doubleword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMINSD m256 ymm ymm
|
|
// VPMINSD ymm ymm ymm
|
|
// VPMINSD m128 xmm xmm
|
|
// VPMINSD xmm xmm xmm
|
|
// VPMINSD m128 xmm k xmm
|
|
// VPMINSD m256 ymm k ymm
|
|
// VPMINSD xmm xmm k xmm
|
|
// VPMINSD ymm ymm k ymm
|
|
// VPMINSD m512 zmm k zmm
|
|
// VPMINSD m512 zmm zmm
|
|
// VPMINSD zmm zmm k zmm
|
|
// VPMINSD zmm zmm zmm
|
|
func VPMINSD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMINSD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMINSD_BCST: Minimum of Packed Signed Doubleword Integers (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMINSD.BCST m32 xmm k xmm
|
|
// VPMINSD.BCST m32 xmm xmm
|
|
// VPMINSD.BCST m32 ymm k ymm
|
|
// VPMINSD.BCST m32 ymm ymm
|
|
// VPMINSD.BCST m32 zmm k zmm
|
|
// VPMINSD.BCST m32 zmm zmm
|
|
func VPMINSD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMINSD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPMINSD_BCST_Z: Minimum of Packed Signed Doubleword Integers (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMINSD.BCST.Z m32 xmm k xmm
|
|
// VPMINSD.BCST.Z m32 ymm k ymm
|
|
// VPMINSD.BCST.Z m32 zmm k zmm
|
|
func VPMINSD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMINSD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPMINSD_Z: Minimum of Packed Signed Doubleword Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMINSD.Z m128 xmm k xmm
|
|
// VPMINSD.Z m256 ymm k ymm
|
|
// VPMINSD.Z xmm xmm k xmm
|
|
// VPMINSD.Z ymm ymm k ymm
|
|
// VPMINSD.Z m512 zmm k zmm
|
|
// VPMINSD.Z zmm zmm k zmm
|
|
func VPMINSD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMINSD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPMINSQ: Minimum of Packed Signed Quadword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMINSQ m128 xmm k xmm
|
|
// VPMINSQ m128 xmm xmm
|
|
// VPMINSQ m256 ymm k ymm
|
|
// VPMINSQ m256 ymm ymm
|
|
// VPMINSQ xmm xmm k xmm
|
|
// VPMINSQ xmm xmm xmm
|
|
// VPMINSQ ymm ymm k ymm
|
|
// VPMINSQ ymm ymm ymm
|
|
// VPMINSQ m512 zmm k zmm
|
|
// VPMINSQ m512 zmm zmm
|
|
// VPMINSQ zmm zmm k zmm
|
|
// VPMINSQ zmm zmm zmm
|
|
func VPMINSQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMINSQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMINSQ_BCST: Minimum of Packed Signed Quadword Integers (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMINSQ.BCST m64 xmm k xmm
|
|
// VPMINSQ.BCST m64 xmm xmm
|
|
// VPMINSQ.BCST m64 ymm k ymm
|
|
// VPMINSQ.BCST m64 ymm ymm
|
|
// VPMINSQ.BCST m64 zmm k zmm
|
|
// VPMINSQ.BCST m64 zmm zmm
|
|
func VPMINSQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMINSQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPMINSQ_BCST_Z: Minimum of Packed Signed Quadword Integers (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMINSQ.BCST.Z m64 xmm k xmm
|
|
// VPMINSQ.BCST.Z m64 ymm k ymm
|
|
// VPMINSQ.BCST.Z m64 zmm k zmm
|
|
func VPMINSQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMINSQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPMINSQ_Z: Minimum of Packed Signed Quadword Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMINSQ.Z m128 xmm k xmm
|
|
// VPMINSQ.Z m256 ymm k ymm
|
|
// VPMINSQ.Z xmm xmm k xmm
|
|
// VPMINSQ.Z ymm ymm k ymm
|
|
// VPMINSQ.Z m512 zmm k zmm
|
|
// VPMINSQ.Z zmm zmm k zmm
|
|
func VPMINSQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMINSQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPMINSW: Minimum of Packed Signed Word Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMINSW m256 ymm ymm
|
|
// VPMINSW ymm ymm ymm
|
|
// VPMINSW m128 xmm xmm
|
|
// VPMINSW xmm xmm xmm
|
|
// VPMINSW m128 xmm k xmm
|
|
// VPMINSW m256 ymm k ymm
|
|
// VPMINSW xmm xmm k xmm
|
|
// VPMINSW ymm ymm k ymm
|
|
// VPMINSW m512 zmm k zmm
|
|
// VPMINSW m512 zmm zmm
|
|
// VPMINSW zmm zmm k zmm
|
|
// VPMINSW zmm zmm zmm
|
|
func VPMINSW(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMINSW.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMINSW_Z: Minimum of Packed Signed Word Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMINSW.Z m128 xmm k xmm
|
|
// VPMINSW.Z m256 ymm k ymm
|
|
// VPMINSW.Z xmm xmm k xmm
|
|
// VPMINSW.Z ymm ymm k ymm
|
|
// VPMINSW.Z m512 zmm k zmm
|
|
// VPMINSW.Z zmm zmm k zmm
|
|
func VPMINSW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMINSW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPMINUB: Minimum of Packed Unsigned Byte Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMINUB m256 ymm ymm
|
|
// VPMINUB ymm ymm ymm
|
|
// VPMINUB m128 xmm xmm
|
|
// VPMINUB xmm xmm xmm
|
|
// VPMINUB m128 xmm k xmm
|
|
// VPMINUB m256 ymm k ymm
|
|
// VPMINUB xmm xmm k xmm
|
|
// VPMINUB ymm ymm k ymm
|
|
// VPMINUB m512 zmm k zmm
|
|
// VPMINUB m512 zmm zmm
|
|
// VPMINUB zmm zmm k zmm
|
|
// VPMINUB zmm zmm zmm
|
|
func VPMINUB(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMINUB.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMINUB_Z: Minimum of Packed Unsigned Byte Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMINUB.Z m128 xmm k xmm
|
|
// VPMINUB.Z m256 ymm k ymm
|
|
// VPMINUB.Z xmm xmm k xmm
|
|
// VPMINUB.Z ymm ymm k ymm
|
|
// VPMINUB.Z m512 zmm k zmm
|
|
// VPMINUB.Z zmm zmm k zmm
|
|
func VPMINUB_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMINUB.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPMINUD: Minimum of Packed Unsigned Doubleword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMINUD m256 ymm ymm
|
|
// VPMINUD ymm ymm ymm
|
|
// VPMINUD m128 xmm xmm
|
|
// VPMINUD xmm xmm xmm
|
|
// VPMINUD m128 xmm k xmm
|
|
// VPMINUD m256 ymm k ymm
|
|
// VPMINUD xmm xmm k xmm
|
|
// VPMINUD ymm ymm k ymm
|
|
// VPMINUD m512 zmm k zmm
|
|
// VPMINUD m512 zmm zmm
|
|
// VPMINUD zmm zmm k zmm
|
|
// VPMINUD zmm zmm zmm
|
|
func VPMINUD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMINUD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMINUD_BCST: Minimum of Packed Unsigned Doubleword Integers (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMINUD.BCST m32 xmm k xmm
|
|
// VPMINUD.BCST m32 xmm xmm
|
|
// VPMINUD.BCST m32 ymm k ymm
|
|
// VPMINUD.BCST m32 ymm ymm
|
|
// VPMINUD.BCST m32 zmm k zmm
|
|
// VPMINUD.BCST m32 zmm zmm
|
|
func VPMINUD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMINUD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPMINUD_BCST_Z: Minimum of Packed Unsigned Doubleword Integers (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMINUD.BCST.Z m32 xmm k xmm
|
|
// VPMINUD.BCST.Z m32 ymm k ymm
|
|
// VPMINUD.BCST.Z m32 zmm k zmm
|
|
func VPMINUD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMINUD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPMINUD_Z: Minimum of Packed Unsigned Doubleword Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMINUD.Z m128 xmm k xmm
|
|
// VPMINUD.Z m256 ymm k ymm
|
|
// VPMINUD.Z xmm xmm k xmm
|
|
// VPMINUD.Z ymm ymm k ymm
|
|
// VPMINUD.Z m512 zmm k zmm
|
|
// VPMINUD.Z zmm zmm k zmm
|
|
func VPMINUD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMINUD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPMINUQ: Minimum of Packed Unsigned Quadword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMINUQ m128 xmm k xmm
|
|
// VPMINUQ m128 xmm xmm
|
|
// VPMINUQ m256 ymm k ymm
|
|
// VPMINUQ m256 ymm ymm
|
|
// VPMINUQ xmm xmm k xmm
|
|
// VPMINUQ xmm xmm xmm
|
|
// VPMINUQ ymm ymm k ymm
|
|
// VPMINUQ ymm ymm ymm
|
|
// VPMINUQ m512 zmm k zmm
|
|
// VPMINUQ m512 zmm zmm
|
|
// VPMINUQ zmm zmm k zmm
|
|
// VPMINUQ zmm zmm zmm
|
|
func VPMINUQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMINUQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMINUQ_BCST: Minimum of Packed Unsigned Quadword Integers (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMINUQ.BCST m64 xmm k xmm
|
|
// VPMINUQ.BCST m64 xmm xmm
|
|
// VPMINUQ.BCST m64 ymm k ymm
|
|
// VPMINUQ.BCST m64 ymm ymm
|
|
// VPMINUQ.BCST m64 zmm k zmm
|
|
// VPMINUQ.BCST m64 zmm zmm
|
|
func VPMINUQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMINUQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPMINUQ_BCST_Z: Minimum of Packed Unsigned Quadword Integers (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMINUQ.BCST.Z m64 xmm k xmm
|
|
// VPMINUQ.BCST.Z m64 ymm k ymm
|
|
// VPMINUQ.BCST.Z m64 zmm k zmm
|
|
func VPMINUQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMINUQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPMINUQ_Z: Minimum of Packed Unsigned Quadword Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMINUQ.Z m128 xmm k xmm
|
|
// VPMINUQ.Z m256 ymm k ymm
|
|
// VPMINUQ.Z xmm xmm k xmm
|
|
// VPMINUQ.Z ymm ymm k ymm
|
|
// VPMINUQ.Z m512 zmm k zmm
|
|
// VPMINUQ.Z zmm zmm k zmm
|
|
func VPMINUQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMINUQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPMINUW: Minimum of Packed Unsigned Word Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMINUW m256 ymm ymm
|
|
// VPMINUW ymm ymm ymm
|
|
// VPMINUW m128 xmm xmm
|
|
// VPMINUW xmm xmm xmm
|
|
// VPMINUW m128 xmm k xmm
|
|
// VPMINUW m256 ymm k ymm
|
|
// VPMINUW xmm xmm k xmm
|
|
// VPMINUW ymm ymm k ymm
|
|
// VPMINUW m512 zmm k zmm
|
|
// VPMINUW m512 zmm zmm
|
|
// VPMINUW zmm zmm k zmm
|
|
// VPMINUW zmm zmm zmm
|
|
func VPMINUW(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMINUW.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMINUW_Z: Minimum of Packed Unsigned Word Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMINUW.Z m128 xmm k xmm
|
|
// VPMINUW.Z m256 ymm k ymm
|
|
// VPMINUW.Z xmm xmm k xmm
|
|
// VPMINUW.Z ymm ymm k ymm
|
|
// VPMINUW.Z m512 zmm k zmm
|
|
// VPMINUW.Z zmm zmm k zmm
|
|
func VPMINUW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMINUW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPMOVB2M: Move Signs of Packed Byte Integers to Mask Register.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVB2M xmm k
|
|
// VPMOVB2M ymm k
|
|
// VPMOVB2M zmm k
|
|
func VPMOVB2M(xyz, k operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVB2M.Forms(), sffxs{}, []operand.Op{xyz, k})
|
|
}
|
|
|
|
// VPMOVD2M: Move Signs of Packed Doubleword Integers to Mask Register.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVD2M xmm k
|
|
// VPMOVD2M ymm k
|
|
// VPMOVD2M zmm k
|
|
func VPMOVD2M(xyz, k operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVD2M.Forms(), sffxs{}, []operand.Op{xyz, k})
|
|
}
|
|
|
|
// VPMOVDB: Down Convert Packed Doubleword Values to Byte Values with Truncation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVDB xmm k m32
|
|
// VPMOVDB xmm k xmm
|
|
// VPMOVDB xmm m32
|
|
// VPMOVDB xmm xmm
|
|
// VPMOVDB ymm k m64
|
|
// VPMOVDB ymm k xmm
|
|
// VPMOVDB ymm m64
|
|
// VPMOVDB ymm xmm
|
|
// VPMOVDB zmm k m128
|
|
// VPMOVDB zmm k xmm
|
|
// VPMOVDB zmm m128
|
|
// VPMOVDB zmm xmm
|
|
func VPMOVDB(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVDB.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMOVDB_Z: Down Convert Packed Doubleword Values to Byte Values with Truncation (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVDB.Z xmm k m32
|
|
// VPMOVDB.Z xmm k xmm
|
|
// VPMOVDB.Z ymm k m64
|
|
// VPMOVDB.Z ymm k xmm
|
|
// VPMOVDB.Z zmm k m128
|
|
// VPMOVDB.Z zmm k xmm
|
|
func VPMOVDB_Z(xyz, k, mx operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVDB.Forms(), sffxs{sffxZ}, []operand.Op{xyz, k, mx})
|
|
}
|
|
|
|
// VPMOVDW: Down Convert Packed Doubleword Values to Word Values with Truncation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVDW xmm k m64
|
|
// VPMOVDW xmm k xmm
|
|
// VPMOVDW xmm m64
|
|
// VPMOVDW xmm xmm
|
|
// VPMOVDW ymm k m128
|
|
// VPMOVDW ymm k xmm
|
|
// VPMOVDW ymm m128
|
|
// VPMOVDW ymm xmm
|
|
// VPMOVDW zmm k m256
|
|
// VPMOVDW zmm k ymm
|
|
// VPMOVDW zmm m256
|
|
// VPMOVDW zmm ymm
|
|
func VPMOVDW(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVDW.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMOVDW_Z: Down Convert Packed Doubleword Values to Word Values with Truncation (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVDW.Z xmm k m64
|
|
// VPMOVDW.Z xmm k xmm
|
|
// VPMOVDW.Z ymm k m128
|
|
// VPMOVDW.Z ymm k xmm
|
|
// VPMOVDW.Z zmm k m256
|
|
// VPMOVDW.Z zmm k ymm
|
|
func VPMOVDW_Z(xyz, k, mxy operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVDW.Forms(), sffxs{sffxZ}, []operand.Op{xyz, k, mxy})
|
|
}
|
|
|
|
// VPMOVM2B: Expand Bits of Mask Register to Packed Byte Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVM2B k xmm
|
|
// VPMOVM2B k ymm
|
|
// VPMOVM2B k zmm
|
|
func VPMOVM2B(k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVM2B.Forms(), sffxs{}, []operand.Op{k, xyz})
|
|
}
|
|
|
|
// VPMOVM2D: Expand Bits of Mask Register to Packed Doubleword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVM2D k xmm
|
|
// VPMOVM2D k ymm
|
|
// VPMOVM2D k zmm
|
|
func VPMOVM2D(k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVM2D.Forms(), sffxs{}, []operand.Op{k, xyz})
|
|
}
|
|
|
|
// VPMOVM2Q: Expand Bits of Mask Register to Packed Quadword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVM2Q k xmm
|
|
// VPMOVM2Q k ymm
|
|
// VPMOVM2Q k zmm
|
|
func VPMOVM2Q(k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVM2Q.Forms(), sffxs{}, []operand.Op{k, xyz})
|
|
}
|
|
|
|
// VPMOVM2W: Expand Bits of Mask Register to Packed Word Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVM2W k xmm
|
|
// VPMOVM2W k ymm
|
|
// VPMOVM2W k zmm
|
|
func VPMOVM2W(k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVM2W.Forms(), sffxs{}, []operand.Op{k, xyz})
|
|
}
|
|
|
|
// VPMOVMSKB: Move Byte Mask.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVMSKB ymm r32
|
|
// VPMOVMSKB xmm r32
|
|
func VPMOVMSKB(xy, r operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVMSKB.Forms(), sffxs{}, []operand.Op{xy, r})
|
|
}
|
|
|
|
// VPMOVQ2M: Move Signs of Packed Quadword Integers to Mask Register.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVQ2M xmm k
|
|
// VPMOVQ2M ymm k
|
|
// VPMOVQ2M zmm k
|
|
func VPMOVQ2M(xyz, k operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVQ2M.Forms(), sffxs{}, []operand.Op{xyz, k})
|
|
}
|
|
|
|
// VPMOVQB: Down Convert Packed Quadword Values to Byte Values with Truncation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVQB xmm k m16
|
|
// VPMOVQB xmm k xmm
|
|
// VPMOVQB xmm m16
|
|
// VPMOVQB xmm xmm
|
|
// VPMOVQB ymm k m32
|
|
// VPMOVQB ymm k xmm
|
|
// VPMOVQB ymm m32
|
|
// VPMOVQB ymm xmm
|
|
// VPMOVQB zmm k m64
|
|
// VPMOVQB zmm k xmm
|
|
// VPMOVQB zmm m64
|
|
// VPMOVQB zmm xmm
|
|
func VPMOVQB(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVQB.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMOVQB_Z: Down Convert Packed Quadword Values to Byte Values with Truncation (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVQB.Z xmm k m16
|
|
// VPMOVQB.Z xmm k xmm
|
|
// VPMOVQB.Z ymm k m32
|
|
// VPMOVQB.Z ymm k xmm
|
|
// VPMOVQB.Z zmm k m64
|
|
// VPMOVQB.Z zmm k xmm
|
|
func VPMOVQB_Z(xyz, k, mx operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVQB.Forms(), sffxs{sffxZ}, []operand.Op{xyz, k, mx})
|
|
}
|
|
|
|
// VPMOVQD: Down Convert Packed Quadword Values to Doubleword Values with Truncation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVQD xmm k m64
|
|
// VPMOVQD xmm k xmm
|
|
// VPMOVQD xmm m64
|
|
// VPMOVQD xmm xmm
|
|
// VPMOVQD ymm k m128
|
|
// VPMOVQD ymm k xmm
|
|
// VPMOVQD ymm m128
|
|
// VPMOVQD ymm xmm
|
|
// VPMOVQD zmm k m256
|
|
// VPMOVQD zmm k ymm
|
|
// VPMOVQD zmm m256
|
|
// VPMOVQD zmm ymm
|
|
func VPMOVQD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVQD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMOVQD_Z: Down Convert Packed Quadword Values to Doubleword Values with Truncation (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVQD.Z xmm k m64
|
|
// VPMOVQD.Z xmm k xmm
|
|
// VPMOVQD.Z ymm k m128
|
|
// VPMOVQD.Z ymm k xmm
|
|
// VPMOVQD.Z zmm k m256
|
|
// VPMOVQD.Z zmm k ymm
|
|
func VPMOVQD_Z(xyz, k, mxy operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVQD.Forms(), sffxs{sffxZ}, []operand.Op{xyz, k, mxy})
|
|
}
|
|
|
|
// VPMOVQW: Down Convert Packed Quadword Values to Word Values with Truncation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVQW xmm k m32
|
|
// VPMOVQW xmm k xmm
|
|
// VPMOVQW xmm m32
|
|
// VPMOVQW xmm xmm
|
|
// VPMOVQW ymm k m64
|
|
// VPMOVQW ymm k xmm
|
|
// VPMOVQW ymm m64
|
|
// VPMOVQW ymm xmm
|
|
// VPMOVQW zmm k m128
|
|
// VPMOVQW zmm k xmm
|
|
// VPMOVQW zmm m128
|
|
// VPMOVQW zmm xmm
|
|
func VPMOVQW(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVQW.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMOVQW_Z: Down Convert Packed Quadword Values to Word Values with Truncation (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVQW.Z xmm k m32
|
|
// VPMOVQW.Z xmm k xmm
|
|
// VPMOVQW.Z ymm k m64
|
|
// VPMOVQW.Z ymm k xmm
|
|
// VPMOVQW.Z zmm k m128
|
|
// VPMOVQW.Z zmm k xmm
|
|
func VPMOVQW_Z(xyz, k, mx operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVQW.Forms(), sffxs{sffxZ}, []operand.Op{xyz, k, mx})
|
|
}
|
|
|
|
// VPMOVSDB: Down Convert Packed Doubleword Values to Byte Values with Signed Saturation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVSDB xmm k m32
|
|
// VPMOVSDB xmm k xmm
|
|
// VPMOVSDB xmm m32
|
|
// VPMOVSDB xmm xmm
|
|
// VPMOVSDB ymm k m64
|
|
// VPMOVSDB ymm k xmm
|
|
// VPMOVSDB ymm m64
|
|
// VPMOVSDB ymm xmm
|
|
// VPMOVSDB zmm k m128
|
|
// VPMOVSDB zmm k xmm
|
|
// VPMOVSDB zmm m128
|
|
// VPMOVSDB zmm xmm
|
|
func VPMOVSDB(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVSDB.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMOVSDB_Z: Down Convert Packed Doubleword Values to Byte Values with Signed Saturation (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVSDB.Z xmm k m32
|
|
// VPMOVSDB.Z xmm k xmm
|
|
// VPMOVSDB.Z ymm k m64
|
|
// VPMOVSDB.Z ymm k xmm
|
|
// VPMOVSDB.Z zmm k m128
|
|
// VPMOVSDB.Z zmm k xmm
|
|
func VPMOVSDB_Z(xyz, k, mx operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVSDB.Forms(), sffxs{sffxZ}, []operand.Op{xyz, k, mx})
|
|
}
|
|
|
|
// VPMOVSDW: Down Convert Packed Doubleword Values to Word Values with Signed Saturation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVSDW xmm k m64
|
|
// VPMOVSDW xmm k xmm
|
|
// VPMOVSDW xmm m64
|
|
// VPMOVSDW xmm xmm
|
|
// VPMOVSDW ymm k m128
|
|
// VPMOVSDW ymm k xmm
|
|
// VPMOVSDW ymm m128
|
|
// VPMOVSDW ymm xmm
|
|
// VPMOVSDW zmm k m256
|
|
// VPMOVSDW zmm k ymm
|
|
// VPMOVSDW zmm m256
|
|
// VPMOVSDW zmm ymm
|
|
func VPMOVSDW(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVSDW.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMOVSDW_Z: Down Convert Packed Doubleword Values to Word Values with Signed Saturation (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVSDW.Z xmm k m64
|
|
// VPMOVSDW.Z xmm k xmm
|
|
// VPMOVSDW.Z ymm k m128
|
|
// VPMOVSDW.Z ymm k xmm
|
|
// VPMOVSDW.Z zmm k m256
|
|
// VPMOVSDW.Z zmm k ymm
|
|
func VPMOVSDW_Z(xyz, k, mxy operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVSDW.Forms(), sffxs{sffxZ}, []operand.Op{xyz, k, mxy})
|
|
}
|
|
|
|
// VPMOVSQB: Down Convert Packed Quadword Values to Byte Values with Signed Saturation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVSQB xmm k m16
|
|
// VPMOVSQB xmm k xmm
|
|
// VPMOVSQB xmm m16
|
|
// VPMOVSQB xmm xmm
|
|
// VPMOVSQB ymm k m32
|
|
// VPMOVSQB ymm k xmm
|
|
// VPMOVSQB ymm m32
|
|
// VPMOVSQB ymm xmm
|
|
// VPMOVSQB zmm k m64
|
|
// VPMOVSQB zmm k xmm
|
|
// VPMOVSQB zmm m64
|
|
// VPMOVSQB zmm xmm
|
|
func VPMOVSQB(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVSQB.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMOVSQB_Z: Down Convert Packed Quadword Values to Byte Values with Signed Saturation (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVSQB.Z xmm k m16
|
|
// VPMOVSQB.Z xmm k xmm
|
|
// VPMOVSQB.Z ymm k m32
|
|
// VPMOVSQB.Z ymm k xmm
|
|
// VPMOVSQB.Z zmm k m64
|
|
// VPMOVSQB.Z zmm k xmm
|
|
func VPMOVSQB_Z(xyz, k, mx operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVSQB.Forms(), sffxs{sffxZ}, []operand.Op{xyz, k, mx})
|
|
}
|
|
|
|
// VPMOVSQD: Down Convert Packed Quadword Values to Doubleword Values with Signed Saturation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVSQD xmm k m64
|
|
// VPMOVSQD xmm k xmm
|
|
// VPMOVSQD xmm m64
|
|
// VPMOVSQD xmm xmm
|
|
// VPMOVSQD ymm k m128
|
|
// VPMOVSQD ymm k xmm
|
|
// VPMOVSQD ymm m128
|
|
// VPMOVSQD ymm xmm
|
|
// VPMOVSQD zmm k m256
|
|
// VPMOVSQD zmm k ymm
|
|
// VPMOVSQD zmm m256
|
|
// VPMOVSQD zmm ymm
|
|
func VPMOVSQD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVSQD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMOVSQD_Z: Down Convert Packed Quadword Values to Doubleword Values with Signed Saturation (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVSQD.Z xmm k m64
|
|
// VPMOVSQD.Z xmm k xmm
|
|
// VPMOVSQD.Z ymm k m128
|
|
// VPMOVSQD.Z ymm k xmm
|
|
// VPMOVSQD.Z zmm k m256
|
|
// VPMOVSQD.Z zmm k ymm
|
|
func VPMOVSQD_Z(xyz, k, mxy operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVSQD.Forms(), sffxs{sffxZ}, []operand.Op{xyz, k, mxy})
|
|
}
|
|
|
|
// VPMOVSQW: Down Convert Packed Quadword Values to Word Values with Signed Saturation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVSQW xmm k m32
|
|
// VPMOVSQW xmm k xmm
|
|
// VPMOVSQW xmm m32
|
|
// VPMOVSQW xmm xmm
|
|
// VPMOVSQW ymm k m64
|
|
// VPMOVSQW ymm k xmm
|
|
// VPMOVSQW ymm m64
|
|
// VPMOVSQW ymm xmm
|
|
// VPMOVSQW zmm k m128
|
|
// VPMOVSQW zmm k xmm
|
|
// VPMOVSQW zmm m128
|
|
// VPMOVSQW zmm xmm
|
|
func VPMOVSQW(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVSQW.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMOVSQW_Z: Down Convert Packed Quadword Values to Word Values with Signed Saturation (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVSQW.Z xmm k m32
|
|
// VPMOVSQW.Z xmm k xmm
|
|
// VPMOVSQW.Z ymm k m64
|
|
// VPMOVSQW.Z ymm k xmm
|
|
// VPMOVSQW.Z zmm k m128
|
|
// VPMOVSQW.Z zmm k xmm
|
|
func VPMOVSQW_Z(xyz, k, mx operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVSQW.Forms(), sffxs{sffxZ}, []operand.Op{xyz, k, mx})
|
|
}
|
|
|
|
// VPMOVSWB: Down Convert Packed Word Values to Byte Values with Signed Saturation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVSWB xmm k m64
|
|
// VPMOVSWB xmm k xmm
|
|
// VPMOVSWB xmm m64
|
|
// VPMOVSWB xmm xmm
|
|
// VPMOVSWB ymm k m128
|
|
// VPMOVSWB ymm k xmm
|
|
// VPMOVSWB ymm m128
|
|
// VPMOVSWB ymm xmm
|
|
// VPMOVSWB zmm k m256
|
|
// VPMOVSWB zmm k ymm
|
|
// VPMOVSWB zmm m256
|
|
// VPMOVSWB zmm ymm
|
|
func VPMOVSWB(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVSWB.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMOVSWB_Z: Down Convert Packed Word Values to Byte Values with Signed Saturation (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVSWB.Z xmm k m64
|
|
// VPMOVSWB.Z xmm k xmm
|
|
// VPMOVSWB.Z ymm k m128
|
|
// VPMOVSWB.Z ymm k xmm
|
|
// VPMOVSWB.Z zmm k m256
|
|
// VPMOVSWB.Z zmm k ymm
|
|
func VPMOVSWB_Z(xyz, k, mxy operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVSWB.Forms(), sffxs{sffxZ}, []operand.Op{xyz, k, mxy})
|
|
}
|
|
|
|
// VPMOVSXBD: Move Packed Byte Integers to Doubleword Integers with Sign Extension.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVSXBD m64 ymm
|
|
// VPMOVSXBD xmm ymm
|
|
// VPMOVSXBD m32 xmm
|
|
// VPMOVSXBD xmm xmm
|
|
// VPMOVSXBD m32 k xmm
|
|
// VPMOVSXBD m64 k ymm
|
|
// VPMOVSXBD xmm k xmm
|
|
// VPMOVSXBD xmm k ymm
|
|
// VPMOVSXBD m128 k zmm
|
|
// VPMOVSXBD m128 zmm
|
|
// VPMOVSXBD xmm k zmm
|
|
// VPMOVSXBD xmm zmm
|
|
func VPMOVSXBD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVSXBD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMOVSXBD_Z: Move Packed Byte Integers to Doubleword Integers with Sign Extension (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVSXBD.Z m32 k xmm
|
|
// VPMOVSXBD.Z m64 k ymm
|
|
// VPMOVSXBD.Z xmm k xmm
|
|
// VPMOVSXBD.Z xmm k ymm
|
|
// VPMOVSXBD.Z m128 k zmm
|
|
// VPMOVSXBD.Z xmm k zmm
|
|
func VPMOVSXBD_Z(mx, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVSXBD.Forms(), sffxs{sffxZ}, []operand.Op{mx, k, xyz})
|
|
}
|
|
|
|
// VPMOVSXBQ: Move Packed Byte Integers to Quadword Integers with Sign Extension.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVSXBQ m32 ymm
|
|
// VPMOVSXBQ xmm ymm
|
|
// VPMOVSXBQ m16 xmm
|
|
// VPMOVSXBQ xmm xmm
|
|
// VPMOVSXBQ m16 k xmm
|
|
// VPMOVSXBQ m32 k ymm
|
|
// VPMOVSXBQ xmm k xmm
|
|
// VPMOVSXBQ xmm k ymm
|
|
// VPMOVSXBQ m64 k zmm
|
|
// VPMOVSXBQ m64 zmm
|
|
// VPMOVSXBQ xmm k zmm
|
|
// VPMOVSXBQ xmm zmm
|
|
func VPMOVSXBQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVSXBQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMOVSXBQ_Z: Move Packed Byte Integers to Quadword Integers with Sign Extension (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVSXBQ.Z m16 k xmm
|
|
// VPMOVSXBQ.Z m32 k ymm
|
|
// VPMOVSXBQ.Z xmm k xmm
|
|
// VPMOVSXBQ.Z xmm k ymm
|
|
// VPMOVSXBQ.Z m64 k zmm
|
|
// VPMOVSXBQ.Z xmm k zmm
|
|
func VPMOVSXBQ_Z(mx, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVSXBQ.Forms(), sffxs{sffxZ}, []operand.Op{mx, k, xyz})
|
|
}
|
|
|
|
// VPMOVSXBW: Move Packed Byte Integers to Word Integers with Sign Extension.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVSXBW m128 ymm
|
|
// VPMOVSXBW xmm ymm
|
|
// VPMOVSXBW m64 xmm
|
|
// VPMOVSXBW xmm xmm
|
|
// VPMOVSXBW m128 k ymm
|
|
// VPMOVSXBW m64 k xmm
|
|
// VPMOVSXBW xmm k xmm
|
|
// VPMOVSXBW xmm k ymm
|
|
// VPMOVSXBW m256 k zmm
|
|
// VPMOVSXBW m256 zmm
|
|
// VPMOVSXBW ymm k zmm
|
|
// VPMOVSXBW ymm zmm
|
|
func VPMOVSXBW(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVSXBW.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMOVSXBW_Z: Move Packed Byte Integers to Word Integers with Sign Extension (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVSXBW.Z m128 k ymm
|
|
// VPMOVSXBW.Z m64 k xmm
|
|
// VPMOVSXBW.Z xmm k xmm
|
|
// VPMOVSXBW.Z xmm k ymm
|
|
// VPMOVSXBW.Z m256 k zmm
|
|
// VPMOVSXBW.Z ymm k zmm
|
|
func VPMOVSXBW_Z(mxy, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVSXBW.Forms(), sffxs{sffxZ}, []operand.Op{mxy, k, xyz})
|
|
}
|
|
|
|
// VPMOVSXDQ: Move Packed Doubleword Integers to Quadword Integers with Sign Extension.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVSXDQ m128 ymm
|
|
// VPMOVSXDQ xmm ymm
|
|
// VPMOVSXDQ m64 xmm
|
|
// VPMOVSXDQ xmm xmm
|
|
// VPMOVSXDQ m128 k ymm
|
|
// VPMOVSXDQ m64 k xmm
|
|
// VPMOVSXDQ xmm k xmm
|
|
// VPMOVSXDQ xmm k ymm
|
|
// VPMOVSXDQ m256 k zmm
|
|
// VPMOVSXDQ m256 zmm
|
|
// VPMOVSXDQ ymm k zmm
|
|
// VPMOVSXDQ ymm zmm
|
|
func VPMOVSXDQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVSXDQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMOVSXDQ_Z: Move Packed Doubleword Integers to Quadword Integers with Sign Extension (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVSXDQ.Z m128 k ymm
|
|
// VPMOVSXDQ.Z m64 k xmm
|
|
// VPMOVSXDQ.Z xmm k xmm
|
|
// VPMOVSXDQ.Z xmm k ymm
|
|
// VPMOVSXDQ.Z m256 k zmm
|
|
// VPMOVSXDQ.Z ymm k zmm
|
|
func VPMOVSXDQ_Z(mxy, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVSXDQ.Forms(), sffxs{sffxZ}, []operand.Op{mxy, k, xyz})
|
|
}
|
|
|
|
// VPMOVSXWD: Move Packed Word Integers to Doubleword Integers with Sign Extension.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVSXWD m128 ymm
|
|
// VPMOVSXWD xmm ymm
|
|
// VPMOVSXWD m64 xmm
|
|
// VPMOVSXWD xmm xmm
|
|
// VPMOVSXWD m128 k ymm
|
|
// VPMOVSXWD m64 k xmm
|
|
// VPMOVSXWD xmm k xmm
|
|
// VPMOVSXWD xmm k ymm
|
|
// VPMOVSXWD m256 k zmm
|
|
// VPMOVSXWD m256 zmm
|
|
// VPMOVSXWD ymm k zmm
|
|
// VPMOVSXWD ymm zmm
|
|
func VPMOVSXWD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVSXWD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMOVSXWD_Z: Move Packed Word Integers to Doubleword Integers with Sign Extension (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVSXWD.Z m128 k ymm
|
|
// VPMOVSXWD.Z m64 k xmm
|
|
// VPMOVSXWD.Z xmm k xmm
|
|
// VPMOVSXWD.Z xmm k ymm
|
|
// VPMOVSXWD.Z m256 k zmm
|
|
// VPMOVSXWD.Z ymm k zmm
|
|
func VPMOVSXWD_Z(mxy, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVSXWD.Forms(), sffxs{sffxZ}, []operand.Op{mxy, k, xyz})
|
|
}
|
|
|
|
// VPMOVSXWQ: Move Packed Word Integers to Quadword Integers with Sign Extension.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVSXWQ m64 ymm
|
|
// VPMOVSXWQ xmm ymm
|
|
// VPMOVSXWQ m32 xmm
|
|
// VPMOVSXWQ xmm xmm
|
|
// VPMOVSXWQ m32 k xmm
|
|
// VPMOVSXWQ m64 k ymm
|
|
// VPMOVSXWQ xmm k xmm
|
|
// VPMOVSXWQ xmm k ymm
|
|
// VPMOVSXWQ m128 k zmm
|
|
// VPMOVSXWQ m128 zmm
|
|
// VPMOVSXWQ xmm k zmm
|
|
// VPMOVSXWQ xmm zmm
|
|
func VPMOVSXWQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVSXWQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMOVSXWQ_Z: Move Packed Word Integers to Quadword Integers with Sign Extension (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVSXWQ.Z m32 k xmm
|
|
// VPMOVSXWQ.Z m64 k ymm
|
|
// VPMOVSXWQ.Z xmm k xmm
|
|
// VPMOVSXWQ.Z xmm k ymm
|
|
// VPMOVSXWQ.Z m128 k zmm
|
|
// VPMOVSXWQ.Z xmm k zmm
|
|
func VPMOVSXWQ_Z(mx, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVSXWQ.Forms(), sffxs{sffxZ}, []operand.Op{mx, k, xyz})
|
|
}
|
|
|
|
// VPMOVUSDB: Down Convert Packed Doubleword Values to Byte Values with Unsigned Saturation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVUSDB xmm k m32
|
|
// VPMOVUSDB xmm k xmm
|
|
// VPMOVUSDB xmm m32
|
|
// VPMOVUSDB xmm xmm
|
|
// VPMOVUSDB ymm k m64
|
|
// VPMOVUSDB ymm k xmm
|
|
// VPMOVUSDB ymm m64
|
|
// VPMOVUSDB ymm xmm
|
|
// VPMOVUSDB zmm k m128
|
|
// VPMOVUSDB zmm k xmm
|
|
// VPMOVUSDB zmm m128
|
|
// VPMOVUSDB zmm xmm
|
|
func VPMOVUSDB(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVUSDB.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMOVUSDB_Z: Down Convert Packed Doubleword Values to Byte Values with Unsigned Saturation (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVUSDB.Z xmm k m32
|
|
// VPMOVUSDB.Z xmm k xmm
|
|
// VPMOVUSDB.Z ymm k m64
|
|
// VPMOVUSDB.Z ymm k xmm
|
|
// VPMOVUSDB.Z zmm k m128
|
|
// VPMOVUSDB.Z zmm k xmm
|
|
func VPMOVUSDB_Z(xyz, k, mx operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVUSDB.Forms(), sffxs{sffxZ}, []operand.Op{xyz, k, mx})
|
|
}
|
|
|
|
// VPMOVUSDW: Down Convert Packed Doubleword Values to Word Values with Unsigned Saturation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVUSDW xmm k m64
|
|
// VPMOVUSDW xmm k xmm
|
|
// VPMOVUSDW xmm m64
|
|
// VPMOVUSDW xmm xmm
|
|
// VPMOVUSDW ymm k m128
|
|
// VPMOVUSDW ymm k xmm
|
|
// VPMOVUSDW ymm m128
|
|
// VPMOVUSDW ymm xmm
|
|
// VPMOVUSDW zmm k m256
|
|
// VPMOVUSDW zmm k ymm
|
|
// VPMOVUSDW zmm m256
|
|
// VPMOVUSDW zmm ymm
|
|
func VPMOVUSDW(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVUSDW.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMOVUSDW_Z: Down Convert Packed Doubleword Values to Word Values with Unsigned Saturation (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVUSDW.Z xmm k m64
|
|
// VPMOVUSDW.Z xmm k xmm
|
|
// VPMOVUSDW.Z ymm k m128
|
|
// VPMOVUSDW.Z ymm k xmm
|
|
// VPMOVUSDW.Z zmm k m256
|
|
// VPMOVUSDW.Z zmm k ymm
|
|
func VPMOVUSDW_Z(xyz, k, mxy operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVUSDW.Forms(), sffxs{sffxZ}, []operand.Op{xyz, k, mxy})
|
|
}
|
|
|
|
// VPMOVUSQB: Down Convert Packed Quadword Values to Byte Values with Unsigned Saturation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVUSQB xmm k m16
|
|
// VPMOVUSQB xmm k xmm
|
|
// VPMOVUSQB xmm m16
|
|
// VPMOVUSQB xmm xmm
|
|
// VPMOVUSQB ymm k m32
|
|
// VPMOVUSQB ymm k xmm
|
|
// VPMOVUSQB ymm m32
|
|
// VPMOVUSQB ymm xmm
|
|
// VPMOVUSQB zmm k m64
|
|
// VPMOVUSQB zmm k xmm
|
|
// VPMOVUSQB zmm m64
|
|
// VPMOVUSQB zmm xmm
|
|
func VPMOVUSQB(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVUSQB.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMOVUSQB_Z: Down Convert Packed Quadword Values to Byte Values with Unsigned Saturation (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVUSQB.Z xmm k m16
|
|
// VPMOVUSQB.Z xmm k xmm
|
|
// VPMOVUSQB.Z ymm k m32
|
|
// VPMOVUSQB.Z ymm k xmm
|
|
// VPMOVUSQB.Z zmm k m64
|
|
// VPMOVUSQB.Z zmm k xmm
|
|
func VPMOVUSQB_Z(xyz, k, mx operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVUSQB.Forms(), sffxs{sffxZ}, []operand.Op{xyz, k, mx})
|
|
}
|
|
|
|
// VPMOVUSQD: Down Convert Packed Quadword Values to Doubleword Values with Unsigned Saturation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVUSQD xmm k m64
|
|
// VPMOVUSQD xmm k xmm
|
|
// VPMOVUSQD xmm m64
|
|
// VPMOVUSQD xmm xmm
|
|
// VPMOVUSQD ymm k m128
|
|
// VPMOVUSQD ymm k xmm
|
|
// VPMOVUSQD ymm m128
|
|
// VPMOVUSQD ymm xmm
|
|
// VPMOVUSQD zmm k m256
|
|
// VPMOVUSQD zmm k ymm
|
|
// VPMOVUSQD zmm m256
|
|
// VPMOVUSQD zmm ymm
|
|
func VPMOVUSQD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVUSQD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMOVUSQD_Z: Down Convert Packed Quadword Values to Doubleword Values with Unsigned Saturation (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVUSQD.Z xmm k m64
|
|
// VPMOVUSQD.Z xmm k xmm
|
|
// VPMOVUSQD.Z ymm k m128
|
|
// VPMOVUSQD.Z ymm k xmm
|
|
// VPMOVUSQD.Z zmm k m256
|
|
// VPMOVUSQD.Z zmm k ymm
|
|
func VPMOVUSQD_Z(xyz, k, mxy operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVUSQD.Forms(), sffxs{sffxZ}, []operand.Op{xyz, k, mxy})
|
|
}
|
|
|
|
// VPMOVUSQW: Down Convert Packed Quadword Values to Word Values with Unsigned Saturation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVUSQW xmm k m32
|
|
// VPMOVUSQW xmm k xmm
|
|
// VPMOVUSQW xmm m32
|
|
// VPMOVUSQW xmm xmm
|
|
// VPMOVUSQW ymm k m64
|
|
// VPMOVUSQW ymm k xmm
|
|
// VPMOVUSQW ymm m64
|
|
// VPMOVUSQW ymm xmm
|
|
// VPMOVUSQW zmm k m128
|
|
// VPMOVUSQW zmm k xmm
|
|
// VPMOVUSQW zmm m128
|
|
// VPMOVUSQW zmm xmm
|
|
func VPMOVUSQW(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVUSQW.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMOVUSQW_Z: Down Convert Packed Quadword Values to Word Values with Unsigned Saturation (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVUSQW.Z xmm k m32
|
|
// VPMOVUSQW.Z xmm k xmm
|
|
// VPMOVUSQW.Z ymm k m64
|
|
// VPMOVUSQW.Z ymm k xmm
|
|
// VPMOVUSQW.Z zmm k m128
|
|
// VPMOVUSQW.Z zmm k xmm
|
|
func VPMOVUSQW_Z(xyz, k, mx operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVUSQW.Forms(), sffxs{sffxZ}, []operand.Op{xyz, k, mx})
|
|
}
|
|
|
|
// VPMOVUSWB: Down Convert Packed Word Values to Byte Values with Unsigned Saturation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVUSWB xmm k m64
|
|
// VPMOVUSWB xmm k xmm
|
|
// VPMOVUSWB xmm m64
|
|
// VPMOVUSWB xmm xmm
|
|
// VPMOVUSWB ymm k m128
|
|
// VPMOVUSWB ymm k xmm
|
|
// VPMOVUSWB ymm m128
|
|
// VPMOVUSWB ymm xmm
|
|
// VPMOVUSWB zmm k m256
|
|
// VPMOVUSWB zmm k ymm
|
|
// VPMOVUSWB zmm m256
|
|
// VPMOVUSWB zmm ymm
|
|
func VPMOVUSWB(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVUSWB.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMOVUSWB_Z: Down Convert Packed Word Values to Byte Values with Unsigned Saturation (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVUSWB.Z xmm k m64
|
|
// VPMOVUSWB.Z xmm k xmm
|
|
// VPMOVUSWB.Z ymm k m128
|
|
// VPMOVUSWB.Z ymm k xmm
|
|
// VPMOVUSWB.Z zmm k m256
|
|
// VPMOVUSWB.Z zmm k ymm
|
|
func VPMOVUSWB_Z(xyz, k, mxy operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVUSWB.Forms(), sffxs{sffxZ}, []operand.Op{xyz, k, mxy})
|
|
}
|
|
|
|
// VPMOVW2M: Move Signs of Packed Word Integers to Mask Register.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVW2M xmm k
|
|
// VPMOVW2M ymm k
|
|
// VPMOVW2M zmm k
|
|
func VPMOVW2M(xyz, k operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVW2M.Forms(), sffxs{}, []operand.Op{xyz, k})
|
|
}
|
|
|
|
// VPMOVWB: Down Convert Packed Word Values to Byte Values with Truncation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVWB xmm k m64
|
|
// VPMOVWB xmm k xmm
|
|
// VPMOVWB xmm m64
|
|
// VPMOVWB xmm xmm
|
|
// VPMOVWB ymm k m128
|
|
// VPMOVWB ymm k xmm
|
|
// VPMOVWB ymm m128
|
|
// VPMOVWB ymm xmm
|
|
// VPMOVWB zmm k m256
|
|
// VPMOVWB zmm k ymm
|
|
// VPMOVWB zmm m256
|
|
// VPMOVWB zmm ymm
|
|
func VPMOVWB(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVWB.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMOVWB_Z: Down Convert Packed Word Values to Byte Values with Truncation (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVWB.Z xmm k m64
|
|
// VPMOVWB.Z xmm k xmm
|
|
// VPMOVWB.Z ymm k m128
|
|
// VPMOVWB.Z ymm k xmm
|
|
// VPMOVWB.Z zmm k m256
|
|
// VPMOVWB.Z zmm k ymm
|
|
func VPMOVWB_Z(xyz, k, mxy operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVWB.Forms(), sffxs{sffxZ}, []operand.Op{xyz, k, mxy})
|
|
}
|
|
|
|
// VPMOVZXBD: Move Packed Byte Integers to Doubleword Integers with Zero Extension.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVZXBD m64 ymm
|
|
// VPMOVZXBD xmm ymm
|
|
// VPMOVZXBD m32 xmm
|
|
// VPMOVZXBD xmm xmm
|
|
// VPMOVZXBD m32 k xmm
|
|
// VPMOVZXBD m64 k ymm
|
|
// VPMOVZXBD xmm k xmm
|
|
// VPMOVZXBD xmm k ymm
|
|
// VPMOVZXBD m128 k zmm
|
|
// VPMOVZXBD m128 zmm
|
|
// VPMOVZXBD xmm k zmm
|
|
// VPMOVZXBD xmm zmm
|
|
func VPMOVZXBD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVZXBD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMOVZXBD_Z: Move Packed Byte Integers to Doubleword Integers with Zero Extension (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVZXBD.Z m32 k xmm
|
|
// VPMOVZXBD.Z m64 k ymm
|
|
// VPMOVZXBD.Z xmm k xmm
|
|
// VPMOVZXBD.Z xmm k ymm
|
|
// VPMOVZXBD.Z m128 k zmm
|
|
// VPMOVZXBD.Z xmm k zmm
|
|
func VPMOVZXBD_Z(mx, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVZXBD.Forms(), sffxs{sffxZ}, []operand.Op{mx, k, xyz})
|
|
}
|
|
|
|
// VPMOVZXBQ: Move Packed Byte Integers to Quadword Integers with Zero Extension.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVZXBQ m32 ymm
|
|
// VPMOVZXBQ xmm ymm
|
|
// VPMOVZXBQ m16 xmm
|
|
// VPMOVZXBQ xmm xmm
|
|
// VPMOVZXBQ m16 k xmm
|
|
// VPMOVZXBQ m32 k ymm
|
|
// VPMOVZXBQ xmm k xmm
|
|
// VPMOVZXBQ xmm k ymm
|
|
// VPMOVZXBQ m64 k zmm
|
|
// VPMOVZXBQ m64 zmm
|
|
// VPMOVZXBQ xmm k zmm
|
|
// VPMOVZXBQ xmm zmm
|
|
func VPMOVZXBQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVZXBQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMOVZXBQ_Z: Move Packed Byte Integers to Quadword Integers with Zero Extension (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVZXBQ.Z m16 k xmm
|
|
// VPMOVZXBQ.Z m32 k ymm
|
|
// VPMOVZXBQ.Z xmm k xmm
|
|
// VPMOVZXBQ.Z xmm k ymm
|
|
// VPMOVZXBQ.Z m64 k zmm
|
|
// VPMOVZXBQ.Z xmm k zmm
|
|
func VPMOVZXBQ_Z(mx, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVZXBQ.Forms(), sffxs{sffxZ}, []operand.Op{mx, k, xyz})
|
|
}
|
|
|
|
// VPMOVZXBW: Move Packed Byte Integers to Word Integers with Zero Extension.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVZXBW m128 ymm
|
|
// VPMOVZXBW xmm ymm
|
|
// VPMOVZXBW m64 xmm
|
|
// VPMOVZXBW xmm xmm
|
|
// VPMOVZXBW m128 k ymm
|
|
// VPMOVZXBW m64 k xmm
|
|
// VPMOVZXBW xmm k xmm
|
|
// VPMOVZXBW xmm k ymm
|
|
// VPMOVZXBW m256 k zmm
|
|
// VPMOVZXBW m256 zmm
|
|
// VPMOVZXBW ymm k zmm
|
|
// VPMOVZXBW ymm zmm
|
|
func VPMOVZXBW(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVZXBW.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMOVZXBW_Z: Move Packed Byte Integers to Word Integers with Zero Extension (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVZXBW.Z m128 k ymm
|
|
// VPMOVZXBW.Z m64 k xmm
|
|
// VPMOVZXBW.Z xmm k xmm
|
|
// VPMOVZXBW.Z xmm k ymm
|
|
// VPMOVZXBW.Z m256 k zmm
|
|
// VPMOVZXBW.Z ymm k zmm
|
|
func VPMOVZXBW_Z(mxy, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVZXBW.Forms(), sffxs{sffxZ}, []operand.Op{mxy, k, xyz})
|
|
}
|
|
|
|
// VPMOVZXDQ: Move Packed Doubleword Integers to Quadword Integers with Zero Extension.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVZXDQ m128 ymm
|
|
// VPMOVZXDQ xmm ymm
|
|
// VPMOVZXDQ m64 xmm
|
|
// VPMOVZXDQ xmm xmm
|
|
// VPMOVZXDQ m128 k ymm
|
|
// VPMOVZXDQ m64 k xmm
|
|
// VPMOVZXDQ xmm k xmm
|
|
// VPMOVZXDQ xmm k ymm
|
|
// VPMOVZXDQ m256 k zmm
|
|
// VPMOVZXDQ m256 zmm
|
|
// VPMOVZXDQ ymm k zmm
|
|
// VPMOVZXDQ ymm zmm
|
|
func VPMOVZXDQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVZXDQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMOVZXDQ_Z: Move Packed Doubleword Integers to Quadword Integers with Zero Extension (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVZXDQ.Z m128 k ymm
|
|
// VPMOVZXDQ.Z m64 k xmm
|
|
// VPMOVZXDQ.Z xmm k xmm
|
|
// VPMOVZXDQ.Z xmm k ymm
|
|
// VPMOVZXDQ.Z m256 k zmm
|
|
// VPMOVZXDQ.Z ymm k zmm
|
|
func VPMOVZXDQ_Z(mxy, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVZXDQ.Forms(), sffxs{sffxZ}, []operand.Op{mxy, k, xyz})
|
|
}
|
|
|
|
// VPMOVZXWD: Move Packed Word Integers to Doubleword Integers with Zero Extension.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVZXWD m128 ymm
|
|
// VPMOVZXWD xmm ymm
|
|
// VPMOVZXWD m64 xmm
|
|
// VPMOVZXWD xmm xmm
|
|
// VPMOVZXWD m128 k ymm
|
|
// VPMOVZXWD m64 k xmm
|
|
// VPMOVZXWD xmm k xmm
|
|
// VPMOVZXWD xmm k ymm
|
|
// VPMOVZXWD m256 k zmm
|
|
// VPMOVZXWD m256 zmm
|
|
// VPMOVZXWD ymm k zmm
|
|
// VPMOVZXWD ymm zmm
|
|
func VPMOVZXWD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVZXWD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMOVZXWD_Z: Move Packed Word Integers to Doubleword Integers with Zero Extension (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVZXWD.Z m128 k ymm
|
|
// VPMOVZXWD.Z m64 k xmm
|
|
// VPMOVZXWD.Z xmm k xmm
|
|
// VPMOVZXWD.Z xmm k ymm
|
|
// VPMOVZXWD.Z m256 k zmm
|
|
// VPMOVZXWD.Z ymm k zmm
|
|
func VPMOVZXWD_Z(mxy, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVZXWD.Forms(), sffxs{sffxZ}, []operand.Op{mxy, k, xyz})
|
|
}
|
|
|
|
// VPMOVZXWQ: Move Packed Word Integers to Quadword Integers with Zero Extension.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVZXWQ m64 ymm
|
|
// VPMOVZXWQ xmm ymm
|
|
// VPMOVZXWQ m32 xmm
|
|
// VPMOVZXWQ xmm xmm
|
|
// VPMOVZXWQ m32 k xmm
|
|
// VPMOVZXWQ m64 k ymm
|
|
// VPMOVZXWQ xmm k xmm
|
|
// VPMOVZXWQ xmm k ymm
|
|
// VPMOVZXWQ m128 k zmm
|
|
// VPMOVZXWQ m128 zmm
|
|
// VPMOVZXWQ xmm k zmm
|
|
// VPMOVZXWQ xmm zmm
|
|
func VPMOVZXWQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVZXWQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMOVZXWQ_Z: Move Packed Word Integers to Quadword Integers with Zero Extension (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMOVZXWQ.Z m32 k xmm
|
|
// VPMOVZXWQ.Z m64 k ymm
|
|
// VPMOVZXWQ.Z xmm k xmm
|
|
// VPMOVZXWQ.Z xmm k ymm
|
|
// VPMOVZXWQ.Z m128 k zmm
|
|
// VPMOVZXWQ.Z xmm k zmm
|
|
func VPMOVZXWQ_Z(mx, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMOVZXWQ.Forms(), sffxs{sffxZ}, []operand.Op{mx, k, xyz})
|
|
}
|
|
|
|
// VPMULDQ: Multiply Packed Signed Doubleword Integers and Store Quadword Result.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMULDQ m256 ymm ymm
|
|
// VPMULDQ ymm ymm ymm
|
|
// VPMULDQ m128 xmm xmm
|
|
// VPMULDQ xmm xmm xmm
|
|
// VPMULDQ m128 xmm k xmm
|
|
// VPMULDQ m256 ymm k ymm
|
|
// VPMULDQ xmm xmm k xmm
|
|
// VPMULDQ ymm ymm k ymm
|
|
// VPMULDQ m512 zmm k zmm
|
|
// VPMULDQ m512 zmm zmm
|
|
// VPMULDQ zmm zmm k zmm
|
|
// VPMULDQ zmm zmm zmm
|
|
func VPMULDQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMULDQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMULDQ_BCST: Multiply Packed Signed Doubleword Integers and Store Quadword Result (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMULDQ.BCST m64 xmm k xmm
|
|
// VPMULDQ.BCST m64 xmm xmm
|
|
// VPMULDQ.BCST m64 ymm k ymm
|
|
// VPMULDQ.BCST m64 ymm ymm
|
|
// VPMULDQ.BCST m64 zmm k zmm
|
|
// VPMULDQ.BCST m64 zmm zmm
|
|
func VPMULDQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMULDQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPMULDQ_BCST_Z: Multiply Packed Signed Doubleword Integers and Store Quadword Result (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMULDQ.BCST.Z m64 xmm k xmm
|
|
// VPMULDQ.BCST.Z m64 ymm k ymm
|
|
// VPMULDQ.BCST.Z m64 zmm k zmm
|
|
func VPMULDQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMULDQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPMULDQ_Z: Multiply Packed Signed Doubleword Integers and Store Quadword Result (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMULDQ.Z m128 xmm k xmm
|
|
// VPMULDQ.Z m256 ymm k ymm
|
|
// VPMULDQ.Z xmm xmm k xmm
|
|
// VPMULDQ.Z ymm ymm k ymm
|
|
// VPMULDQ.Z m512 zmm k zmm
|
|
// VPMULDQ.Z zmm zmm k zmm
|
|
func VPMULDQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMULDQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPMULHRSW: Packed Multiply Signed Word Integers and Store High Result with Round and Scale.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMULHRSW m256 ymm ymm
|
|
// VPMULHRSW ymm ymm ymm
|
|
// VPMULHRSW m128 xmm xmm
|
|
// VPMULHRSW xmm xmm xmm
|
|
// VPMULHRSW m128 xmm k xmm
|
|
// VPMULHRSW m256 ymm k ymm
|
|
// VPMULHRSW xmm xmm k xmm
|
|
// VPMULHRSW ymm ymm k ymm
|
|
// VPMULHRSW m512 zmm k zmm
|
|
// VPMULHRSW m512 zmm zmm
|
|
// VPMULHRSW zmm zmm k zmm
|
|
// VPMULHRSW zmm zmm zmm
|
|
func VPMULHRSW(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMULHRSW.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMULHRSW_Z: Packed Multiply Signed Word Integers and Store High Result with Round and Scale (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMULHRSW.Z m128 xmm k xmm
|
|
// VPMULHRSW.Z m256 ymm k ymm
|
|
// VPMULHRSW.Z xmm xmm k xmm
|
|
// VPMULHRSW.Z ymm ymm k ymm
|
|
// VPMULHRSW.Z m512 zmm k zmm
|
|
// VPMULHRSW.Z zmm zmm k zmm
|
|
func VPMULHRSW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMULHRSW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPMULHUW: Multiply Packed Unsigned Word Integers and Store High Result.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMULHUW m256 ymm ymm
|
|
// VPMULHUW ymm ymm ymm
|
|
// VPMULHUW m128 xmm xmm
|
|
// VPMULHUW xmm xmm xmm
|
|
// VPMULHUW m128 xmm k xmm
|
|
// VPMULHUW m256 ymm k ymm
|
|
// VPMULHUW xmm xmm k xmm
|
|
// VPMULHUW ymm ymm k ymm
|
|
// VPMULHUW m512 zmm k zmm
|
|
// VPMULHUW m512 zmm zmm
|
|
// VPMULHUW zmm zmm k zmm
|
|
// VPMULHUW zmm zmm zmm
|
|
func VPMULHUW(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMULHUW.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMULHUW_Z: Multiply Packed Unsigned Word Integers and Store High Result (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMULHUW.Z m128 xmm k xmm
|
|
// VPMULHUW.Z m256 ymm k ymm
|
|
// VPMULHUW.Z xmm xmm k xmm
|
|
// VPMULHUW.Z ymm ymm k ymm
|
|
// VPMULHUW.Z m512 zmm k zmm
|
|
// VPMULHUW.Z zmm zmm k zmm
|
|
func VPMULHUW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMULHUW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPMULHW: Multiply Packed Signed Word Integers and Store High Result.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMULHW m256 ymm ymm
|
|
// VPMULHW ymm ymm ymm
|
|
// VPMULHW m128 xmm xmm
|
|
// VPMULHW xmm xmm xmm
|
|
// VPMULHW m128 xmm k xmm
|
|
// VPMULHW m256 ymm k ymm
|
|
// VPMULHW xmm xmm k xmm
|
|
// VPMULHW ymm ymm k ymm
|
|
// VPMULHW m512 zmm k zmm
|
|
// VPMULHW m512 zmm zmm
|
|
// VPMULHW zmm zmm k zmm
|
|
// VPMULHW zmm zmm zmm
|
|
func VPMULHW(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMULHW.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMULHW_Z: Multiply Packed Signed Word Integers and Store High Result (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMULHW.Z m128 xmm k xmm
|
|
// VPMULHW.Z m256 ymm k ymm
|
|
// VPMULHW.Z xmm xmm k xmm
|
|
// VPMULHW.Z ymm ymm k ymm
|
|
// VPMULHW.Z m512 zmm k zmm
|
|
// VPMULHW.Z zmm zmm k zmm
|
|
func VPMULHW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMULHW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPMULLD: Multiply Packed Signed Doubleword Integers and Store Low Result.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMULLD m256 ymm ymm
|
|
// VPMULLD ymm ymm ymm
|
|
// VPMULLD m128 xmm xmm
|
|
// VPMULLD xmm xmm xmm
|
|
// VPMULLD m128 xmm k xmm
|
|
// VPMULLD m256 ymm k ymm
|
|
// VPMULLD xmm xmm k xmm
|
|
// VPMULLD ymm ymm k ymm
|
|
// VPMULLD m512 zmm k zmm
|
|
// VPMULLD m512 zmm zmm
|
|
// VPMULLD zmm zmm k zmm
|
|
// VPMULLD zmm zmm zmm
|
|
func VPMULLD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMULLD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMULLD_BCST: Multiply Packed Signed Doubleword Integers and Store Low Result (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMULLD.BCST m32 xmm k xmm
|
|
// VPMULLD.BCST m32 xmm xmm
|
|
// VPMULLD.BCST m32 ymm k ymm
|
|
// VPMULLD.BCST m32 ymm ymm
|
|
// VPMULLD.BCST m32 zmm k zmm
|
|
// VPMULLD.BCST m32 zmm zmm
|
|
func VPMULLD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMULLD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPMULLD_BCST_Z: Multiply Packed Signed Doubleword Integers and Store Low Result (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMULLD.BCST.Z m32 xmm k xmm
|
|
// VPMULLD.BCST.Z m32 ymm k ymm
|
|
// VPMULLD.BCST.Z m32 zmm k zmm
|
|
func VPMULLD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMULLD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPMULLD_Z: Multiply Packed Signed Doubleword Integers and Store Low Result (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMULLD.Z m128 xmm k xmm
|
|
// VPMULLD.Z m256 ymm k ymm
|
|
// VPMULLD.Z xmm xmm k xmm
|
|
// VPMULLD.Z ymm ymm k ymm
|
|
// VPMULLD.Z m512 zmm k zmm
|
|
// VPMULLD.Z zmm zmm k zmm
|
|
func VPMULLD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMULLD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPMULLQ: Multiply Packed Signed Quadword Integers and Store Low Result.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMULLQ m128 xmm k xmm
|
|
// VPMULLQ m128 xmm xmm
|
|
// VPMULLQ m256 ymm k ymm
|
|
// VPMULLQ m256 ymm ymm
|
|
// VPMULLQ xmm xmm k xmm
|
|
// VPMULLQ xmm xmm xmm
|
|
// VPMULLQ ymm ymm k ymm
|
|
// VPMULLQ ymm ymm ymm
|
|
// VPMULLQ m512 zmm k zmm
|
|
// VPMULLQ m512 zmm zmm
|
|
// VPMULLQ zmm zmm k zmm
|
|
// VPMULLQ zmm zmm zmm
|
|
func VPMULLQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMULLQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMULLQ_BCST: Multiply Packed Signed Quadword Integers and Store Low Result (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMULLQ.BCST m64 xmm k xmm
|
|
// VPMULLQ.BCST m64 xmm xmm
|
|
// VPMULLQ.BCST m64 ymm k ymm
|
|
// VPMULLQ.BCST m64 ymm ymm
|
|
// VPMULLQ.BCST m64 zmm k zmm
|
|
// VPMULLQ.BCST m64 zmm zmm
|
|
func VPMULLQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMULLQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPMULLQ_BCST_Z: Multiply Packed Signed Quadword Integers and Store Low Result (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMULLQ.BCST.Z m64 xmm k xmm
|
|
// VPMULLQ.BCST.Z m64 ymm k ymm
|
|
// VPMULLQ.BCST.Z m64 zmm k zmm
|
|
func VPMULLQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMULLQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPMULLQ_Z: Multiply Packed Signed Quadword Integers and Store Low Result (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMULLQ.Z m128 xmm k xmm
|
|
// VPMULLQ.Z m256 ymm k ymm
|
|
// VPMULLQ.Z xmm xmm k xmm
|
|
// VPMULLQ.Z ymm ymm k ymm
|
|
// VPMULLQ.Z m512 zmm k zmm
|
|
// VPMULLQ.Z zmm zmm k zmm
|
|
func VPMULLQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMULLQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPMULLW: Multiply Packed Signed Word Integers and Store Low Result.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMULLW m256 ymm ymm
|
|
// VPMULLW ymm ymm ymm
|
|
// VPMULLW m128 xmm xmm
|
|
// VPMULLW xmm xmm xmm
|
|
// VPMULLW m128 xmm k xmm
|
|
// VPMULLW m256 ymm k ymm
|
|
// VPMULLW xmm xmm k xmm
|
|
// VPMULLW ymm ymm k ymm
|
|
// VPMULLW m512 zmm k zmm
|
|
// VPMULLW m512 zmm zmm
|
|
// VPMULLW zmm zmm k zmm
|
|
// VPMULLW zmm zmm zmm
|
|
func VPMULLW(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMULLW.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMULLW_Z: Multiply Packed Signed Word Integers and Store Low Result (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMULLW.Z m128 xmm k xmm
|
|
// VPMULLW.Z m256 ymm k ymm
|
|
// VPMULLW.Z xmm xmm k xmm
|
|
// VPMULLW.Z ymm ymm k ymm
|
|
// VPMULLW.Z m512 zmm k zmm
|
|
// VPMULLW.Z zmm zmm k zmm
|
|
func VPMULLW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMULLW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPMULTISHIFTQB: Select Packed Unaligned Bytes from Quadword Sources.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMULTISHIFTQB m128 xmm k xmm
|
|
// VPMULTISHIFTQB m128 xmm xmm
|
|
// VPMULTISHIFTQB m256 ymm k ymm
|
|
// VPMULTISHIFTQB m256 ymm ymm
|
|
// VPMULTISHIFTQB xmm xmm k xmm
|
|
// VPMULTISHIFTQB xmm xmm xmm
|
|
// VPMULTISHIFTQB ymm ymm k ymm
|
|
// VPMULTISHIFTQB ymm ymm ymm
|
|
// VPMULTISHIFTQB m512 zmm k zmm
|
|
// VPMULTISHIFTQB m512 zmm zmm
|
|
// VPMULTISHIFTQB zmm zmm k zmm
|
|
// VPMULTISHIFTQB zmm zmm zmm
|
|
func VPMULTISHIFTQB(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMULTISHIFTQB.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMULTISHIFTQB_BCST: Select Packed Unaligned Bytes from Quadword Sources (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMULTISHIFTQB.BCST m64 xmm k xmm
|
|
// VPMULTISHIFTQB.BCST m64 xmm xmm
|
|
// VPMULTISHIFTQB.BCST m64 ymm k ymm
|
|
// VPMULTISHIFTQB.BCST m64 ymm ymm
|
|
// VPMULTISHIFTQB.BCST m64 zmm k zmm
|
|
// VPMULTISHIFTQB.BCST m64 zmm zmm
|
|
func VPMULTISHIFTQB_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMULTISHIFTQB.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPMULTISHIFTQB_BCST_Z: Select Packed Unaligned Bytes from Quadword Sources (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMULTISHIFTQB.BCST.Z m64 xmm k xmm
|
|
// VPMULTISHIFTQB.BCST.Z m64 ymm k ymm
|
|
// VPMULTISHIFTQB.BCST.Z m64 zmm k zmm
|
|
func VPMULTISHIFTQB_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMULTISHIFTQB.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPMULTISHIFTQB_Z: Select Packed Unaligned Bytes from Quadword Sources (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMULTISHIFTQB.Z m128 xmm k xmm
|
|
// VPMULTISHIFTQB.Z m256 ymm k ymm
|
|
// VPMULTISHIFTQB.Z xmm xmm k xmm
|
|
// VPMULTISHIFTQB.Z ymm ymm k ymm
|
|
// VPMULTISHIFTQB.Z m512 zmm k zmm
|
|
// VPMULTISHIFTQB.Z zmm zmm k zmm
|
|
func VPMULTISHIFTQB_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMULTISHIFTQB.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPMULUDQ: Multiply Packed Unsigned Doubleword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMULUDQ m256 ymm ymm
|
|
// VPMULUDQ ymm ymm ymm
|
|
// VPMULUDQ m128 xmm xmm
|
|
// VPMULUDQ xmm xmm xmm
|
|
// VPMULUDQ m128 xmm k xmm
|
|
// VPMULUDQ m256 ymm k ymm
|
|
// VPMULUDQ xmm xmm k xmm
|
|
// VPMULUDQ ymm ymm k ymm
|
|
// VPMULUDQ m512 zmm k zmm
|
|
// VPMULUDQ m512 zmm zmm
|
|
// VPMULUDQ zmm zmm k zmm
|
|
// VPMULUDQ zmm zmm zmm
|
|
func VPMULUDQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMULUDQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPMULUDQ_BCST: Multiply Packed Unsigned Doubleword Integers (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMULUDQ.BCST m64 xmm k xmm
|
|
// VPMULUDQ.BCST m64 xmm xmm
|
|
// VPMULUDQ.BCST m64 ymm k ymm
|
|
// VPMULUDQ.BCST m64 ymm ymm
|
|
// VPMULUDQ.BCST m64 zmm k zmm
|
|
// VPMULUDQ.BCST m64 zmm zmm
|
|
func VPMULUDQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMULUDQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPMULUDQ_BCST_Z: Multiply Packed Unsigned Doubleword Integers (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMULUDQ.BCST.Z m64 xmm k xmm
|
|
// VPMULUDQ.BCST.Z m64 ymm k ymm
|
|
// VPMULUDQ.BCST.Z m64 zmm k zmm
|
|
func VPMULUDQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMULUDQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPMULUDQ_Z: Multiply Packed Unsigned Doubleword Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPMULUDQ.Z m128 xmm k xmm
|
|
// VPMULUDQ.Z m256 ymm k ymm
|
|
// VPMULUDQ.Z xmm xmm k xmm
|
|
// VPMULUDQ.Z ymm ymm k ymm
|
|
// VPMULUDQ.Z m512 zmm k zmm
|
|
// VPMULUDQ.Z zmm zmm k zmm
|
|
func VPMULUDQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPMULUDQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPOPCNTB: Packed Population Count for Byte Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPOPCNTB m128 k xmm
|
|
// VPOPCNTB m128 xmm
|
|
// VPOPCNTB m256 k ymm
|
|
// VPOPCNTB m256 ymm
|
|
// VPOPCNTB xmm k xmm
|
|
// VPOPCNTB xmm xmm
|
|
// VPOPCNTB ymm k ymm
|
|
// VPOPCNTB ymm ymm
|
|
// VPOPCNTB m512 k zmm
|
|
// VPOPCNTB m512 zmm
|
|
// VPOPCNTB zmm k zmm
|
|
// VPOPCNTB zmm zmm
|
|
func VPOPCNTB(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPOPCNTB.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPOPCNTB_Z: Packed Population Count for Byte Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPOPCNTB.Z m128 k xmm
|
|
// VPOPCNTB.Z m256 k ymm
|
|
// VPOPCNTB.Z xmm k xmm
|
|
// VPOPCNTB.Z ymm k ymm
|
|
// VPOPCNTB.Z m512 k zmm
|
|
// VPOPCNTB.Z zmm k zmm
|
|
func VPOPCNTB_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPOPCNTB.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz})
|
|
}
|
|
|
|
// VPOPCNTD: Packed Population Count for Doubleword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPOPCNTD m128 k xmm
|
|
// VPOPCNTD m128 xmm
|
|
// VPOPCNTD m256 k ymm
|
|
// VPOPCNTD m256 ymm
|
|
// VPOPCNTD xmm k xmm
|
|
// VPOPCNTD xmm xmm
|
|
// VPOPCNTD ymm k ymm
|
|
// VPOPCNTD ymm ymm
|
|
// VPOPCNTD m512 k zmm
|
|
// VPOPCNTD m512 zmm
|
|
// VPOPCNTD zmm k zmm
|
|
// VPOPCNTD zmm zmm
|
|
func VPOPCNTD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPOPCNTD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPOPCNTD_BCST: Packed Population Count for Doubleword Integers (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPOPCNTD.BCST m32 k xmm
|
|
// VPOPCNTD.BCST m32 k ymm
|
|
// VPOPCNTD.BCST m32 xmm
|
|
// VPOPCNTD.BCST m32 ymm
|
|
// VPOPCNTD.BCST m32 k zmm
|
|
// VPOPCNTD.BCST m32 zmm
|
|
func VPOPCNTD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPOPCNTD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPOPCNTD_BCST_Z: Packed Population Count for Doubleword Integers (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPOPCNTD.BCST.Z m32 k xmm
|
|
// VPOPCNTD.BCST.Z m32 k ymm
|
|
// VPOPCNTD.BCST.Z m32 k zmm
|
|
func VPOPCNTD_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPOPCNTD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz})
|
|
}
|
|
|
|
// VPOPCNTD_Z: Packed Population Count for Doubleword Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPOPCNTD.Z m128 k xmm
|
|
// VPOPCNTD.Z m256 k ymm
|
|
// VPOPCNTD.Z xmm k xmm
|
|
// VPOPCNTD.Z ymm k ymm
|
|
// VPOPCNTD.Z m512 k zmm
|
|
// VPOPCNTD.Z zmm k zmm
|
|
func VPOPCNTD_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPOPCNTD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz})
|
|
}
|
|
|
|
// VPOPCNTQ: Packed Population Count for Quadword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPOPCNTQ m128 k xmm
|
|
// VPOPCNTQ m128 xmm
|
|
// VPOPCNTQ m256 k ymm
|
|
// VPOPCNTQ m256 ymm
|
|
// VPOPCNTQ xmm k xmm
|
|
// VPOPCNTQ xmm xmm
|
|
// VPOPCNTQ ymm k ymm
|
|
// VPOPCNTQ ymm ymm
|
|
// VPOPCNTQ m512 k zmm
|
|
// VPOPCNTQ m512 zmm
|
|
// VPOPCNTQ zmm k zmm
|
|
// VPOPCNTQ zmm zmm
|
|
func VPOPCNTQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPOPCNTQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPOPCNTQ_BCST: Packed Population Count for Quadword Integers (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPOPCNTQ.BCST m64 k xmm
|
|
// VPOPCNTQ.BCST m64 k ymm
|
|
// VPOPCNTQ.BCST m64 xmm
|
|
// VPOPCNTQ.BCST m64 ymm
|
|
// VPOPCNTQ.BCST m64 k zmm
|
|
// VPOPCNTQ.BCST m64 zmm
|
|
func VPOPCNTQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPOPCNTQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPOPCNTQ_BCST_Z: Packed Population Count for Quadword Integers (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPOPCNTQ.BCST.Z m64 k xmm
|
|
// VPOPCNTQ.BCST.Z m64 k ymm
|
|
// VPOPCNTQ.BCST.Z m64 k zmm
|
|
func VPOPCNTQ_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPOPCNTQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz})
|
|
}
|
|
|
|
// VPOPCNTQ_Z: Packed Population Count for Quadword Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPOPCNTQ.Z m128 k xmm
|
|
// VPOPCNTQ.Z m256 k ymm
|
|
// VPOPCNTQ.Z xmm k xmm
|
|
// VPOPCNTQ.Z ymm k ymm
|
|
// VPOPCNTQ.Z m512 k zmm
|
|
// VPOPCNTQ.Z zmm k zmm
|
|
func VPOPCNTQ_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPOPCNTQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz})
|
|
}
|
|
|
|
// VPOPCNTW: Packed Population Count for Word Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPOPCNTW m128 k xmm
|
|
// VPOPCNTW m128 xmm
|
|
// VPOPCNTW m256 k ymm
|
|
// VPOPCNTW m256 ymm
|
|
// VPOPCNTW xmm k xmm
|
|
// VPOPCNTW xmm xmm
|
|
// VPOPCNTW ymm k ymm
|
|
// VPOPCNTW ymm ymm
|
|
// VPOPCNTW m512 k zmm
|
|
// VPOPCNTW m512 zmm
|
|
// VPOPCNTW zmm k zmm
|
|
// VPOPCNTW zmm zmm
|
|
func VPOPCNTW(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPOPCNTW.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPOPCNTW_Z: Packed Population Count for Word Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPOPCNTW.Z m128 k xmm
|
|
// VPOPCNTW.Z m256 k ymm
|
|
// VPOPCNTW.Z xmm k xmm
|
|
// VPOPCNTW.Z ymm k ymm
|
|
// VPOPCNTW.Z m512 k zmm
|
|
// VPOPCNTW.Z zmm k zmm
|
|
func VPOPCNTW_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPOPCNTW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz})
|
|
}
|
|
|
|
// VPOR: Packed Bitwise Logical OR.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPOR m256 ymm ymm
|
|
// VPOR ymm ymm ymm
|
|
// VPOR m128 xmm xmm
|
|
// VPOR xmm xmm xmm
|
|
func VPOR(mxy, xy, xy1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPOR.Forms(), sffxs{}, []operand.Op{mxy, xy, xy1})
|
|
}
|
|
|
|
// VPORD: Bitwise Logical OR of Packed Doubleword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPORD m128 xmm k xmm
|
|
// VPORD m128 xmm xmm
|
|
// VPORD m256 ymm k ymm
|
|
// VPORD m256 ymm ymm
|
|
// VPORD xmm xmm k xmm
|
|
// VPORD xmm xmm xmm
|
|
// VPORD ymm ymm k ymm
|
|
// VPORD ymm ymm ymm
|
|
// VPORD m512 zmm k zmm
|
|
// VPORD m512 zmm zmm
|
|
// VPORD zmm zmm k zmm
|
|
// VPORD zmm zmm zmm
|
|
func VPORD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPORD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPORD_BCST: Bitwise Logical OR of Packed Doubleword Integers (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPORD.BCST m32 xmm k xmm
|
|
// VPORD.BCST m32 xmm xmm
|
|
// VPORD.BCST m32 ymm k ymm
|
|
// VPORD.BCST m32 ymm ymm
|
|
// VPORD.BCST m32 zmm k zmm
|
|
// VPORD.BCST m32 zmm zmm
|
|
func VPORD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPORD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPORD_BCST_Z: Bitwise Logical OR of Packed Doubleword Integers (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPORD.BCST.Z m32 xmm k xmm
|
|
// VPORD.BCST.Z m32 ymm k ymm
|
|
// VPORD.BCST.Z m32 zmm k zmm
|
|
func VPORD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPORD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPORD_Z: Bitwise Logical OR of Packed Doubleword Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPORD.Z m128 xmm k xmm
|
|
// VPORD.Z m256 ymm k ymm
|
|
// VPORD.Z xmm xmm k xmm
|
|
// VPORD.Z ymm ymm k ymm
|
|
// VPORD.Z m512 zmm k zmm
|
|
// VPORD.Z zmm zmm k zmm
|
|
func VPORD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPORD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPORQ: Bitwise Logical OR of Packed Quadword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPORQ m128 xmm k xmm
|
|
// VPORQ m128 xmm xmm
|
|
// VPORQ m256 ymm k ymm
|
|
// VPORQ m256 ymm ymm
|
|
// VPORQ xmm xmm k xmm
|
|
// VPORQ xmm xmm xmm
|
|
// VPORQ ymm ymm k ymm
|
|
// VPORQ ymm ymm ymm
|
|
// VPORQ m512 zmm k zmm
|
|
// VPORQ m512 zmm zmm
|
|
// VPORQ zmm zmm k zmm
|
|
// VPORQ zmm zmm zmm
|
|
func VPORQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPORQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPORQ_BCST: Bitwise Logical OR of Packed Quadword Integers (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPORQ.BCST m64 xmm k xmm
|
|
// VPORQ.BCST m64 xmm xmm
|
|
// VPORQ.BCST m64 ymm k ymm
|
|
// VPORQ.BCST m64 ymm ymm
|
|
// VPORQ.BCST m64 zmm k zmm
|
|
// VPORQ.BCST m64 zmm zmm
|
|
func VPORQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPORQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPORQ_BCST_Z: Bitwise Logical OR of Packed Quadword Integers (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPORQ.BCST.Z m64 xmm k xmm
|
|
// VPORQ.BCST.Z m64 ymm k ymm
|
|
// VPORQ.BCST.Z m64 zmm k zmm
|
|
func VPORQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPORQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPORQ_Z: Bitwise Logical OR of Packed Quadword Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPORQ.Z m128 xmm k xmm
|
|
// VPORQ.Z m256 ymm k ymm
|
|
// VPORQ.Z xmm xmm k xmm
|
|
// VPORQ.Z ymm ymm k ymm
|
|
// VPORQ.Z m512 zmm k zmm
|
|
// VPORQ.Z zmm zmm k zmm
|
|
func VPORQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPORQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPROLD: Rotate Packed Doubleword Left.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPROLD imm8 m128 k xmm
|
|
// VPROLD imm8 m128 xmm
|
|
// VPROLD imm8 m256 k ymm
|
|
// VPROLD imm8 m256 ymm
|
|
// VPROLD imm8 xmm k xmm
|
|
// VPROLD imm8 xmm xmm
|
|
// VPROLD imm8 ymm k ymm
|
|
// VPROLD imm8 ymm ymm
|
|
// VPROLD imm8 m512 k zmm
|
|
// VPROLD imm8 m512 zmm
|
|
// VPROLD imm8 zmm k zmm
|
|
// VPROLD imm8 zmm zmm
|
|
func VPROLD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPROLD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPROLD_BCST: Rotate Packed Doubleword Left (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPROLD.BCST imm8 m32 k xmm
|
|
// VPROLD.BCST imm8 m32 k ymm
|
|
// VPROLD.BCST imm8 m32 xmm
|
|
// VPROLD.BCST imm8 m32 ymm
|
|
// VPROLD.BCST imm8 m32 k zmm
|
|
// VPROLD.BCST imm8 m32 zmm
|
|
func VPROLD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPROLD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPROLD_BCST_Z: Rotate Packed Doubleword Left (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPROLD.BCST.Z imm8 m32 k xmm
|
|
// VPROLD.BCST.Z imm8 m32 k ymm
|
|
// VPROLD.BCST.Z imm8 m32 k zmm
|
|
func VPROLD_BCST_Z(i, m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPROLD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, k, xyz})
|
|
}
|
|
|
|
// VPROLD_Z: Rotate Packed Doubleword Left (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPROLD.Z imm8 m128 k xmm
|
|
// VPROLD.Z imm8 m256 k ymm
|
|
// VPROLD.Z imm8 xmm k xmm
|
|
// VPROLD.Z imm8 ymm k ymm
|
|
// VPROLD.Z imm8 m512 k zmm
|
|
// VPROLD.Z imm8 zmm k zmm
|
|
func VPROLD_Z(i, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPROLD.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, k, xyz})
|
|
}
|
|
|
|
// VPROLQ: Rotate Packed Quadword Left.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPROLQ imm8 m128 k xmm
|
|
// VPROLQ imm8 m128 xmm
|
|
// VPROLQ imm8 m256 k ymm
|
|
// VPROLQ imm8 m256 ymm
|
|
// VPROLQ imm8 xmm k xmm
|
|
// VPROLQ imm8 xmm xmm
|
|
// VPROLQ imm8 ymm k ymm
|
|
// VPROLQ imm8 ymm ymm
|
|
// VPROLQ imm8 m512 k zmm
|
|
// VPROLQ imm8 m512 zmm
|
|
// VPROLQ imm8 zmm k zmm
|
|
// VPROLQ imm8 zmm zmm
|
|
func VPROLQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPROLQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPROLQ_BCST: Rotate Packed Quadword Left (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPROLQ.BCST imm8 m64 k xmm
|
|
// VPROLQ.BCST imm8 m64 k ymm
|
|
// VPROLQ.BCST imm8 m64 xmm
|
|
// VPROLQ.BCST imm8 m64 ymm
|
|
// VPROLQ.BCST imm8 m64 k zmm
|
|
// VPROLQ.BCST imm8 m64 zmm
|
|
func VPROLQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPROLQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPROLQ_BCST_Z: Rotate Packed Quadword Left (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPROLQ.BCST.Z imm8 m64 k xmm
|
|
// VPROLQ.BCST.Z imm8 m64 k ymm
|
|
// VPROLQ.BCST.Z imm8 m64 k zmm
|
|
func VPROLQ_BCST_Z(i, m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPROLQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, k, xyz})
|
|
}
|
|
|
|
// VPROLQ_Z: Rotate Packed Quadword Left (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPROLQ.Z imm8 m128 k xmm
|
|
// VPROLQ.Z imm8 m256 k ymm
|
|
// VPROLQ.Z imm8 xmm k xmm
|
|
// VPROLQ.Z imm8 ymm k ymm
|
|
// VPROLQ.Z imm8 m512 k zmm
|
|
// VPROLQ.Z imm8 zmm k zmm
|
|
func VPROLQ_Z(i, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPROLQ.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, k, xyz})
|
|
}
|
|
|
|
// VPROLVD: Variable Rotate Packed Doubleword Left.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPROLVD m128 xmm k xmm
|
|
// VPROLVD m128 xmm xmm
|
|
// VPROLVD m256 ymm k ymm
|
|
// VPROLVD m256 ymm ymm
|
|
// VPROLVD xmm xmm k xmm
|
|
// VPROLVD xmm xmm xmm
|
|
// VPROLVD ymm ymm k ymm
|
|
// VPROLVD ymm ymm ymm
|
|
// VPROLVD m512 zmm k zmm
|
|
// VPROLVD m512 zmm zmm
|
|
// VPROLVD zmm zmm k zmm
|
|
// VPROLVD zmm zmm zmm
|
|
func VPROLVD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPROLVD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPROLVD_BCST: Variable Rotate Packed Doubleword Left (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPROLVD.BCST m32 xmm k xmm
|
|
// VPROLVD.BCST m32 xmm xmm
|
|
// VPROLVD.BCST m32 ymm k ymm
|
|
// VPROLVD.BCST m32 ymm ymm
|
|
// VPROLVD.BCST m32 zmm k zmm
|
|
// VPROLVD.BCST m32 zmm zmm
|
|
func VPROLVD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPROLVD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPROLVD_BCST_Z: Variable Rotate Packed Doubleword Left (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPROLVD.BCST.Z m32 xmm k xmm
|
|
// VPROLVD.BCST.Z m32 ymm k ymm
|
|
// VPROLVD.BCST.Z m32 zmm k zmm
|
|
func VPROLVD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPROLVD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPROLVD_Z: Variable Rotate Packed Doubleword Left (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPROLVD.Z m128 xmm k xmm
|
|
// VPROLVD.Z m256 ymm k ymm
|
|
// VPROLVD.Z xmm xmm k xmm
|
|
// VPROLVD.Z ymm ymm k ymm
|
|
// VPROLVD.Z m512 zmm k zmm
|
|
// VPROLVD.Z zmm zmm k zmm
|
|
func VPROLVD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPROLVD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPROLVQ: Variable Rotate Packed Quadword Left.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPROLVQ m128 xmm k xmm
|
|
// VPROLVQ m128 xmm xmm
|
|
// VPROLVQ m256 ymm k ymm
|
|
// VPROLVQ m256 ymm ymm
|
|
// VPROLVQ xmm xmm k xmm
|
|
// VPROLVQ xmm xmm xmm
|
|
// VPROLVQ ymm ymm k ymm
|
|
// VPROLVQ ymm ymm ymm
|
|
// VPROLVQ m512 zmm k zmm
|
|
// VPROLVQ m512 zmm zmm
|
|
// VPROLVQ zmm zmm k zmm
|
|
// VPROLVQ zmm zmm zmm
|
|
func VPROLVQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPROLVQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPROLVQ_BCST: Variable Rotate Packed Quadword Left (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPROLVQ.BCST m64 xmm k xmm
|
|
// VPROLVQ.BCST m64 xmm xmm
|
|
// VPROLVQ.BCST m64 ymm k ymm
|
|
// VPROLVQ.BCST m64 ymm ymm
|
|
// VPROLVQ.BCST m64 zmm k zmm
|
|
// VPROLVQ.BCST m64 zmm zmm
|
|
func VPROLVQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPROLVQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPROLVQ_BCST_Z: Variable Rotate Packed Quadword Left (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPROLVQ.BCST.Z m64 xmm k xmm
|
|
// VPROLVQ.BCST.Z m64 ymm k ymm
|
|
// VPROLVQ.BCST.Z m64 zmm k zmm
|
|
func VPROLVQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPROLVQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPROLVQ_Z: Variable Rotate Packed Quadword Left (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPROLVQ.Z m128 xmm k xmm
|
|
// VPROLVQ.Z m256 ymm k ymm
|
|
// VPROLVQ.Z xmm xmm k xmm
|
|
// VPROLVQ.Z ymm ymm k ymm
|
|
// VPROLVQ.Z m512 zmm k zmm
|
|
// VPROLVQ.Z zmm zmm k zmm
|
|
func VPROLVQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPROLVQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPRORD: Rotate Packed Doubleword Right.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPRORD imm8 m128 k xmm
|
|
// VPRORD imm8 m128 xmm
|
|
// VPRORD imm8 m256 k ymm
|
|
// VPRORD imm8 m256 ymm
|
|
// VPRORD imm8 xmm k xmm
|
|
// VPRORD imm8 xmm xmm
|
|
// VPRORD imm8 ymm k ymm
|
|
// VPRORD imm8 ymm ymm
|
|
// VPRORD imm8 m512 k zmm
|
|
// VPRORD imm8 m512 zmm
|
|
// VPRORD imm8 zmm k zmm
|
|
// VPRORD imm8 zmm zmm
|
|
func VPRORD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPRORD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPRORD_BCST: Rotate Packed Doubleword Right (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPRORD.BCST imm8 m32 k xmm
|
|
// VPRORD.BCST imm8 m32 k ymm
|
|
// VPRORD.BCST imm8 m32 xmm
|
|
// VPRORD.BCST imm8 m32 ymm
|
|
// VPRORD.BCST imm8 m32 k zmm
|
|
// VPRORD.BCST imm8 m32 zmm
|
|
func VPRORD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPRORD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPRORD_BCST_Z: Rotate Packed Doubleword Right (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPRORD.BCST.Z imm8 m32 k xmm
|
|
// VPRORD.BCST.Z imm8 m32 k ymm
|
|
// VPRORD.BCST.Z imm8 m32 k zmm
|
|
func VPRORD_BCST_Z(i, m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPRORD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, k, xyz})
|
|
}
|
|
|
|
// VPRORD_Z: Rotate Packed Doubleword Right (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPRORD.Z imm8 m128 k xmm
|
|
// VPRORD.Z imm8 m256 k ymm
|
|
// VPRORD.Z imm8 xmm k xmm
|
|
// VPRORD.Z imm8 ymm k ymm
|
|
// VPRORD.Z imm8 m512 k zmm
|
|
// VPRORD.Z imm8 zmm k zmm
|
|
func VPRORD_Z(i, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPRORD.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, k, xyz})
|
|
}
|
|
|
|
// VPRORQ: Rotate Packed Quadword Right.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPRORQ imm8 m128 k xmm
|
|
// VPRORQ imm8 m128 xmm
|
|
// VPRORQ imm8 m256 k ymm
|
|
// VPRORQ imm8 m256 ymm
|
|
// VPRORQ imm8 xmm k xmm
|
|
// VPRORQ imm8 xmm xmm
|
|
// VPRORQ imm8 ymm k ymm
|
|
// VPRORQ imm8 ymm ymm
|
|
// VPRORQ imm8 m512 k zmm
|
|
// VPRORQ imm8 m512 zmm
|
|
// VPRORQ imm8 zmm k zmm
|
|
// VPRORQ imm8 zmm zmm
|
|
func VPRORQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPRORQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPRORQ_BCST: Rotate Packed Quadword Right (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPRORQ.BCST imm8 m64 k xmm
|
|
// VPRORQ.BCST imm8 m64 k ymm
|
|
// VPRORQ.BCST imm8 m64 xmm
|
|
// VPRORQ.BCST imm8 m64 ymm
|
|
// VPRORQ.BCST imm8 m64 k zmm
|
|
// VPRORQ.BCST imm8 m64 zmm
|
|
func VPRORQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPRORQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPRORQ_BCST_Z: Rotate Packed Quadword Right (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPRORQ.BCST.Z imm8 m64 k xmm
|
|
// VPRORQ.BCST.Z imm8 m64 k ymm
|
|
// VPRORQ.BCST.Z imm8 m64 k zmm
|
|
func VPRORQ_BCST_Z(i, m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPRORQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, k, xyz})
|
|
}
|
|
|
|
// VPRORQ_Z: Rotate Packed Quadword Right (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPRORQ.Z imm8 m128 k xmm
|
|
// VPRORQ.Z imm8 m256 k ymm
|
|
// VPRORQ.Z imm8 xmm k xmm
|
|
// VPRORQ.Z imm8 ymm k ymm
|
|
// VPRORQ.Z imm8 m512 k zmm
|
|
// VPRORQ.Z imm8 zmm k zmm
|
|
func VPRORQ_Z(i, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPRORQ.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, k, xyz})
|
|
}
|
|
|
|
// VPRORVD: Variable Rotate Packed Doubleword Right.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPRORVD m128 xmm k xmm
|
|
// VPRORVD m128 xmm xmm
|
|
// VPRORVD m256 ymm k ymm
|
|
// VPRORVD m256 ymm ymm
|
|
// VPRORVD xmm xmm k xmm
|
|
// VPRORVD xmm xmm xmm
|
|
// VPRORVD ymm ymm k ymm
|
|
// VPRORVD ymm ymm ymm
|
|
// VPRORVD m512 zmm k zmm
|
|
// VPRORVD m512 zmm zmm
|
|
// VPRORVD zmm zmm k zmm
|
|
// VPRORVD zmm zmm zmm
|
|
func VPRORVD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPRORVD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPRORVD_BCST: Variable Rotate Packed Doubleword Right (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPRORVD.BCST m32 xmm k xmm
|
|
// VPRORVD.BCST m32 xmm xmm
|
|
// VPRORVD.BCST m32 ymm k ymm
|
|
// VPRORVD.BCST m32 ymm ymm
|
|
// VPRORVD.BCST m32 zmm k zmm
|
|
// VPRORVD.BCST m32 zmm zmm
|
|
func VPRORVD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPRORVD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPRORVD_BCST_Z: Variable Rotate Packed Doubleword Right (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPRORVD.BCST.Z m32 xmm k xmm
|
|
// VPRORVD.BCST.Z m32 ymm k ymm
|
|
// VPRORVD.BCST.Z m32 zmm k zmm
|
|
func VPRORVD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPRORVD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPRORVD_Z: Variable Rotate Packed Doubleword Right (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPRORVD.Z m128 xmm k xmm
|
|
// VPRORVD.Z m256 ymm k ymm
|
|
// VPRORVD.Z xmm xmm k xmm
|
|
// VPRORVD.Z ymm ymm k ymm
|
|
// VPRORVD.Z m512 zmm k zmm
|
|
// VPRORVD.Z zmm zmm k zmm
|
|
func VPRORVD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPRORVD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPRORVQ: Variable Rotate Packed Quadword Right.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPRORVQ m128 xmm k xmm
|
|
// VPRORVQ m128 xmm xmm
|
|
// VPRORVQ m256 ymm k ymm
|
|
// VPRORVQ m256 ymm ymm
|
|
// VPRORVQ xmm xmm k xmm
|
|
// VPRORVQ xmm xmm xmm
|
|
// VPRORVQ ymm ymm k ymm
|
|
// VPRORVQ ymm ymm ymm
|
|
// VPRORVQ m512 zmm k zmm
|
|
// VPRORVQ m512 zmm zmm
|
|
// VPRORVQ zmm zmm k zmm
|
|
// VPRORVQ zmm zmm zmm
|
|
func VPRORVQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPRORVQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPRORVQ_BCST: Variable Rotate Packed Quadword Right (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPRORVQ.BCST m64 xmm k xmm
|
|
// VPRORVQ.BCST m64 xmm xmm
|
|
// VPRORVQ.BCST m64 ymm k ymm
|
|
// VPRORVQ.BCST m64 ymm ymm
|
|
// VPRORVQ.BCST m64 zmm k zmm
|
|
// VPRORVQ.BCST m64 zmm zmm
|
|
func VPRORVQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPRORVQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPRORVQ_BCST_Z: Variable Rotate Packed Quadword Right (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPRORVQ.BCST.Z m64 xmm k xmm
|
|
// VPRORVQ.BCST.Z m64 ymm k ymm
|
|
// VPRORVQ.BCST.Z m64 zmm k zmm
|
|
func VPRORVQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPRORVQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPRORVQ_Z: Variable Rotate Packed Quadword Right (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPRORVQ.Z m128 xmm k xmm
|
|
// VPRORVQ.Z m256 ymm k ymm
|
|
// VPRORVQ.Z xmm xmm k xmm
|
|
// VPRORVQ.Z ymm ymm k ymm
|
|
// VPRORVQ.Z m512 zmm k zmm
|
|
// VPRORVQ.Z zmm zmm k zmm
|
|
func VPRORVQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPRORVQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPSADBW: Compute Sum of Absolute Differences.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSADBW m256 ymm ymm
|
|
// VPSADBW ymm ymm ymm
|
|
// VPSADBW m128 xmm xmm
|
|
// VPSADBW xmm xmm xmm
|
|
// VPSADBW m512 zmm zmm
|
|
// VPSADBW zmm zmm zmm
|
|
func VPSADBW(mxyz, xyz, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSADBW.Forms(), sffxs{}, []operand.Op{mxyz, xyz, xyz1})
|
|
}
|
|
|
|
// VPSCATTERDD: Scatter Packed Doubleword Values with Signed Doubleword Indices.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSCATTERDD xmm k vm32x
|
|
// VPSCATTERDD ymm k vm32y
|
|
// VPSCATTERDD zmm k vm32z
|
|
func VPSCATTERDD(xyz, k, v operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSCATTERDD.Forms(), sffxs{}, []operand.Op{xyz, k, v})
|
|
}
|
|
|
|
// VPSCATTERDQ: Scatter Packed Quadword Values with Signed Doubleword Indices.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSCATTERDQ xmm k vm32x
|
|
// VPSCATTERDQ ymm k vm32x
|
|
// VPSCATTERDQ zmm k vm32y
|
|
func VPSCATTERDQ(xyz, k, v operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSCATTERDQ.Forms(), sffxs{}, []operand.Op{xyz, k, v})
|
|
}
|
|
|
|
// VPSCATTERQD: Scatter Packed Doubleword Values with Signed Quadword Indices.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSCATTERQD xmm k vm64x
|
|
// VPSCATTERQD xmm k vm64y
|
|
// VPSCATTERQD ymm k vm64z
|
|
func VPSCATTERQD(xy, k, v operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSCATTERQD.Forms(), sffxs{}, []operand.Op{xy, k, v})
|
|
}
|
|
|
|
// VPSCATTERQQ: Scatter Packed Quadword Values with Signed Quadword Indices.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSCATTERQQ xmm k vm64x
|
|
// VPSCATTERQQ ymm k vm64y
|
|
// VPSCATTERQQ zmm k vm64z
|
|
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:
|
|
//
|
|
// VPSHUFB m256 ymm ymm
|
|
// VPSHUFB ymm ymm ymm
|
|
// VPSHUFB m128 xmm xmm
|
|
// VPSHUFB xmm xmm xmm
|
|
// VPSHUFB m128 xmm k xmm
|
|
// VPSHUFB m256 ymm k ymm
|
|
// VPSHUFB xmm xmm k xmm
|
|
// VPSHUFB ymm ymm k ymm
|
|
// VPSHUFB m512 zmm k zmm
|
|
// VPSHUFB m512 zmm zmm
|
|
// VPSHUFB zmm zmm k zmm
|
|
// VPSHUFB zmm zmm zmm
|
|
func VPSHUFB(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSHUFB.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPSHUFBITQMB: Shuffle Bits from Quadword Elements Using Byte Indexes into Mask.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSHUFBITQMB m128 xmm k k
|
|
// VPSHUFBITQMB m128 xmm k
|
|
// VPSHUFBITQMB m256 ymm k k
|
|
// VPSHUFBITQMB m256 ymm k
|
|
// VPSHUFBITQMB xmm xmm k k
|
|
// VPSHUFBITQMB xmm xmm k
|
|
// VPSHUFBITQMB ymm ymm k k
|
|
// VPSHUFBITQMB ymm ymm k
|
|
// VPSHUFBITQMB zmm zmm k k
|
|
// VPSHUFBITQMB zmm zmm k
|
|
// VPSHUFBITQMB m512 zmm k k
|
|
// VPSHUFBITQMB m512 zmm k
|
|
func VPSHUFBITQMB(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSHUFBITQMB.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPSHUFB_Z: Packed Shuffle Bytes (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSHUFB.Z m128 xmm k xmm
|
|
// VPSHUFB.Z m256 ymm k ymm
|
|
// VPSHUFB.Z xmm xmm k xmm
|
|
// VPSHUFB.Z ymm ymm k ymm
|
|
// VPSHUFB.Z m512 zmm k zmm
|
|
// VPSHUFB.Z zmm zmm k zmm
|
|
func VPSHUFB_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSHUFB.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPSHUFD: Shuffle Packed Doublewords.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSHUFD imm8 m256 ymm
|
|
// VPSHUFD imm8 ymm ymm
|
|
// VPSHUFD imm8 m128 xmm
|
|
// VPSHUFD imm8 xmm xmm
|
|
// VPSHUFD imm8 m128 k xmm
|
|
// VPSHUFD imm8 m256 k ymm
|
|
// VPSHUFD imm8 xmm k xmm
|
|
// VPSHUFD imm8 ymm k ymm
|
|
// VPSHUFD imm8 m512 k zmm
|
|
// VPSHUFD imm8 m512 zmm
|
|
// VPSHUFD imm8 zmm k zmm
|
|
// VPSHUFD imm8 zmm zmm
|
|
func VPSHUFD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSHUFD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPSHUFD_BCST: Shuffle Packed Doublewords (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSHUFD.BCST imm8 m32 k xmm
|
|
// VPSHUFD.BCST imm8 m32 k ymm
|
|
// VPSHUFD.BCST imm8 m32 xmm
|
|
// VPSHUFD.BCST imm8 m32 ymm
|
|
// VPSHUFD.BCST imm8 m32 k zmm
|
|
// VPSHUFD.BCST imm8 m32 zmm
|
|
func VPSHUFD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSHUFD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPSHUFD_BCST_Z: Shuffle Packed Doublewords (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSHUFD.BCST.Z imm8 m32 k xmm
|
|
// VPSHUFD.BCST.Z imm8 m32 k ymm
|
|
// VPSHUFD.BCST.Z imm8 m32 k zmm
|
|
func VPSHUFD_BCST_Z(i, m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSHUFD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, k, xyz})
|
|
}
|
|
|
|
// VPSHUFD_Z: Shuffle Packed Doublewords (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSHUFD.Z imm8 m128 k xmm
|
|
// VPSHUFD.Z imm8 m256 k ymm
|
|
// VPSHUFD.Z imm8 xmm k xmm
|
|
// VPSHUFD.Z imm8 ymm k ymm
|
|
// VPSHUFD.Z imm8 m512 k zmm
|
|
// VPSHUFD.Z imm8 zmm k zmm
|
|
func VPSHUFD_Z(i, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSHUFD.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, k, xyz})
|
|
}
|
|
|
|
// VPSHUFHW: Shuffle Packed High Words.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSHUFHW imm8 m256 ymm
|
|
// VPSHUFHW imm8 ymm ymm
|
|
// VPSHUFHW imm8 m128 xmm
|
|
// VPSHUFHW imm8 xmm xmm
|
|
// VPSHUFHW imm8 m128 k xmm
|
|
// VPSHUFHW imm8 m256 k ymm
|
|
// VPSHUFHW imm8 xmm k xmm
|
|
// VPSHUFHW imm8 ymm k ymm
|
|
// VPSHUFHW imm8 m512 k zmm
|
|
// VPSHUFHW imm8 m512 zmm
|
|
// VPSHUFHW imm8 zmm k zmm
|
|
// VPSHUFHW imm8 zmm zmm
|
|
func VPSHUFHW(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSHUFHW.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPSHUFHW_Z: Shuffle Packed High Words (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSHUFHW.Z imm8 m128 k xmm
|
|
// VPSHUFHW.Z imm8 m256 k ymm
|
|
// VPSHUFHW.Z imm8 xmm k xmm
|
|
// VPSHUFHW.Z imm8 ymm k ymm
|
|
// VPSHUFHW.Z imm8 m512 k zmm
|
|
// VPSHUFHW.Z imm8 zmm k zmm
|
|
func VPSHUFHW_Z(i, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSHUFHW.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, k, xyz})
|
|
}
|
|
|
|
// VPSHUFLW: Shuffle Packed Low Words.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSHUFLW imm8 m256 ymm
|
|
// VPSHUFLW imm8 ymm ymm
|
|
// VPSHUFLW imm8 m128 xmm
|
|
// VPSHUFLW imm8 xmm xmm
|
|
// VPSHUFLW imm8 m128 k xmm
|
|
// VPSHUFLW imm8 m256 k ymm
|
|
// VPSHUFLW imm8 xmm k xmm
|
|
// VPSHUFLW imm8 ymm k ymm
|
|
// VPSHUFLW imm8 m512 k zmm
|
|
// VPSHUFLW imm8 m512 zmm
|
|
// VPSHUFLW imm8 zmm k zmm
|
|
// VPSHUFLW imm8 zmm zmm
|
|
func VPSHUFLW(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSHUFLW.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPSHUFLW_Z: Shuffle Packed Low Words (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSHUFLW.Z imm8 m128 k xmm
|
|
// VPSHUFLW.Z imm8 m256 k ymm
|
|
// VPSHUFLW.Z imm8 xmm k xmm
|
|
// VPSHUFLW.Z imm8 ymm k ymm
|
|
// VPSHUFLW.Z imm8 m512 k zmm
|
|
// VPSHUFLW.Z imm8 zmm k zmm
|
|
func VPSHUFLW_Z(i, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSHUFLW.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, k, xyz})
|
|
}
|
|
|
|
// VPSIGNB: Packed Sign of Byte Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSIGNB m256 ymm ymm
|
|
// VPSIGNB ymm ymm ymm
|
|
// VPSIGNB m128 xmm xmm
|
|
// VPSIGNB xmm xmm xmm
|
|
func VPSIGNB(mxy, xy, xy1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSIGNB.Forms(), sffxs{}, []operand.Op{mxy, xy, xy1})
|
|
}
|
|
|
|
// VPSIGND: Packed Sign of Doubleword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSIGND m256 ymm ymm
|
|
// VPSIGND ymm ymm ymm
|
|
// VPSIGND m128 xmm xmm
|
|
// VPSIGND xmm xmm xmm
|
|
func VPSIGND(mxy, xy, xy1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSIGND.Forms(), sffxs{}, []operand.Op{mxy, xy, xy1})
|
|
}
|
|
|
|
// VPSIGNW: Packed Sign of Word Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSIGNW m256 ymm ymm
|
|
// VPSIGNW ymm ymm ymm
|
|
// VPSIGNW m128 xmm xmm
|
|
// VPSIGNW xmm xmm xmm
|
|
func VPSIGNW(mxy, xy, xy1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSIGNW.Forms(), sffxs{}, []operand.Op{mxy, xy, xy1})
|
|
}
|
|
|
|
// VPSLLD: Shift Packed Doubleword Data Left Logical.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSLLD imm8 ymm ymm
|
|
// VPSLLD m128 ymm ymm
|
|
// VPSLLD xmm ymm ymm
|
|
// VPSLLD imm8 xmm xmm
|
|
// VPSLLD m128 xmm xmm
|
|
// VPSLLD xmm xmm xmm
|
|
// VPSLLD imm8 m128 k xmm
|
|
// VPSLLD imm8 m128 xmm
|
|
// VPSLLD imm8 m256 k ymm
|
|
// VPSLLD imm8 m256 ymm
|
|
// VPSLLD imm8 xmm k xmm
|
|
// VPSLLD imm8 ymm k ymm
|
|
// VPSLLD m128 xmm k xmm
|
|
// VPSLLD m128 ymm k ymm
|
|
// VPSLLD xmm xmm k xmm
|
|
// VPSLLD xmm ymm k ymm
|
|
// VPSLLD imm8 m512 k zmm
|
|
// VPSLLD imm8 m512 zmm
|
|
// VPSLLD imm8 zmm k zmm
|
|
// VPSLLD imm8 zmm zmm
|
|
// VPSLLD m128 zmm k zmm
|
|
// VPSLLD m128 zmm zmm
|
|
// VPSLLD xmm zmm k zmm
|
|
// VPSLLD xmm zmm zmm
|
|
func VPSLLD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSLLD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPSLLDQ: Shift Packed Double Quadword Left Logical.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSLLDQ imm8 ymm ymm
|
|
// VPSLLDQ imm8 xmm xmm
|
|
// VPSLLDQ imm8 m128 xmm
|
|
// VPSLLDQ imm8 m256 ymm
|
|
// VPSLLDQ imm8 m512 zmm
|
|
// VPSLLDQ imm8 zmm zmm
|
|
func VPSLLDQ(i, mxyz, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSLLDQ.Forms(), sffxs{}, []operand.Op{i, mxyz, xyz})
|
|
}
|
|
|
|
// VPSLLD_BCST: Shift Packed Doubleword Data Left Logical (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSLLD.BCST imm8 m32 k xmm
|
|
// VPSLLD.BCST imm8 m32 k ymm
|
|
// VPSLLD.BCST imm8 m32 xmm
|
|
// VPSLLD.BCST imm8 m32 ymm
|
|
// VPSLLD.BCST imm8 m32 k zmm
|
|
// VPSLLD.BCST imm8 m32 zmm
|
|
func VPSLLD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSLLD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPSLLD_BCST_Z: Shift Packed Doubleword Data Left Logical (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSLLD.BCST.Z imm8 m32 k xmm
|
|
// VPSLLD.BCST.Z imm8 m32 k ymm
|
|
// VPSLLD.BCST.Z imm8 m32 k zmm
|
|
func VPSLLD_BCST_Z(i, m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSLLD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, k, xyz})
|
|
}
|
|
|
|
// VPSLLD_Z: Shift Packed Doubleword Data Left Logical (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSLLD.Z imm8 m128 k xmm
|
|
// VPSLLD.Z imm8 m256 k ymm
|
|
// VPSLLD.Z imm8 xmm k xmm
|
|
// VPSLLD.Z imm8 ymm k ymm
|
|
// VPSLLD.Z m128 xmm k xmm
|
|
// VPSLLD.Z m128 ymm k ymm
|
|
// VPSLLD.Z xmm xmm k xmm
|
|
// VPSLLD.Z xmm ymm k ymm
|
|
// VPSLLD.Z imm8 m512 k zmm
|
|
// VPSLLD.Z imm8 zmm k zmm
|
|
// VPSLLD.Z m128 zmm k zmm
|
|
// VPSLLD.Z xmm zmm k zmm
|
|
func VPSLLD_Z(imx, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSLLD.Forms(), sffxs{sffxZ}, []operand.Op{imx, mxyz, k, xyz})
|
|
}
|
|
|
|
// VPSLLQ: Shift Packed Quadword Data Left Logical.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSLLQ imm8 ymm ymm
|
|
// VPSLLQ m128 ymm ymm
|
|
// VPSLLQ xmm ymm ymm
|
|
// VPSLLQ imm8 xmm xmm
|
|
// VPSLLQ m128 xmm xmm
|
|
// VPSLLQ xmm xmm xmm
|
|
// VPSLLQ imm8 m128 k xmm
|
|
// VPSLLQ imm8 m128 xmm
|
|
// VPSLLQ imm8 m256 k ymm
|
|
// VPSLLQ imm8 m256 ymm
|
|
// VPSLLQ imm8 xmm k xmm
|
|
// VPSLLQ imm8 ymm k ymm
|
|
// VPSLLQ m128 xmm k xmm
|
|
// VPSLLQ m128 ymm k ymm
|
|
// VPSLLQ xmm xmm k xmm
|
|
// VPSLLQ xmm ymm k ymm
|
|
// VPSLLQ imm8 m512 k zmm
|
|
// VPSLLQ imm8 m512 zmm
|
|
// VPSLLQ imm8 zmm k zmm
|
|
// VPSLLQ imm8 zmm zmm
|
|
// VPSLLQ m128 zmm k zmm
|
|
// VPSLLQ m128 zmm zmm
|
|
// VPSLLQ xmm zmm k zmm
|
|
// VPSLLQ xmm zmm zmm
|
|
func VPSLLQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSLLQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPSLLQ_BCST: Shift Packed Quadword Data Left Logical (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSLLQ.BCST imm8 m64 k xmm
|
|
// VPSLLQ.BCST imm8 m64 k ymm
|
|
// VPSLLQ.BCST imm8 m64 xmm
|
|
// VPSLLQ.BCST imm8 m64 ymm
|
|
// VPSLLQ.BCST imm8 m64 k zmm
|
|
// VPSLLQ.BCST imm8 m64 zmm
|
|
func VPSLLQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSLLQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPSLLQ_BCST_Z: Shift Packed Quadword Data Left Logical (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSLLQ.BCST.Z imm8 m64 k xmm
|
|
// VPSLLQ.BCST.Z imm8 m64 k ymm
|
|
// VPSLLQ.BCST.Z imm8 m64 k zmm
|
|
func VPSLLQ_BCST_Z(i, m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSLLQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, k, xyz})
|
|
}
|
|
|
|
// VPSLLQ_Z: Shift Packed Quadword Data Left Logical (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSLLQ.Z imm8 m128 k xmm
|
|
// VPSLLQ.Z imm8 m256 k ymm
|
|
// VPSLLQ.Z imm8 xmm k xmm
|
|
// VPSLLQ.Z imm8 ymm k ymm
|
|
// VPSLLQ.Z m128 xmm k xmm
|
|
// VPSLLQ.Z m128 ymm k ymm
|
|
// VPSLLQ.Z xmm xmm k xmm
|
|
// VPSLLQ.Z xmm ymm k ymm
|
|
// VPSLLQ.Z imm8 m512 k zmm
|
|
// VPSLLQ.Z imm8 zmm k zmm
|
|
// VPSLLQ.Z m128 zmm k zmm
|
|
// VPSLLQ.Z xmm zmm k zmm
|
|
func VPSLLQ_Z(imx, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSLLQ.Forms(), sffxs{sffxZ}, []operand.Op{imx, mxyz, k, xyz})
|
|
}
|
|
|
|
// VPSLLVD: Variable Shift Packed Doubleword Data Left Logical.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSLLVD m128 xmm xmm
|
|
// VPSLLVD m256 ymm ymm
|
|
// VPSLLVD xmm xmm xmm
|
|
// VPSLLVD ymm ymm ymm
|
|
// VPSLLVD m128 xmm k xmm
|
|
// VPSLLVD m256 ymm k ymm
|
|
// VPSLLVD xmm xmm k xmm
|
|
// VPSLLVD ymm ymm k ymm
|
|
// VPSLLVD m512 zmm k zmm
|
|
// VPSLLVD m512 zmm zmm
|
|
// VPSLLVD zmm zmm k zmm
|
|
// VPSLLVD zmm zmm zmm
|
|
func VPSLLVD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSLLVD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPSLLVD_BCST: Variable Shift Packed Doubleword Data Left Logical (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSLLVD.BCST m32 xmm k xmm
|
|
// VPSLLVD.BCST m32 xmm xmm
|
|
// VPSLLVD.BCST m32 ymm k ymm
|
|
// VPSLLVD.BCST m32 ymm ymm
|
|
// VPSLLVD.BCST m32 zmm k zmm
|
|
// VPSLLVD.BCST m32 zmm zmm
|
|
func VPSLLVD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSLLVD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPSLLVD_BCST_Z: Variable Shift Packed Doubleword Data Left Logical (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSLLVD.BCST.Z m32 xmm k xmm
|
|
// VPSLLVD.BCST.Z m32 ymm k ymm
|
|
// VPSLLVD.BCST.Z m32 zmm k zmm
|
|
func VPSLLVD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSLLVD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPSLLVD_Z: Variable Shift Packed Doubleword Data Left Logical (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSLLVD.Z m128 xmm k xmm
|
|
// VPSLLVD.Z m256 ymm k ymm
|
|
// VPSLLVD.Z xmm xmm k xmm
|
|
// VPSLLVD.Z ymm ymm k ymm
|
|
// VPSLLVD.Z m512 zmm k zmm
|
|
// VPSLLVD.Z zmm zmm k zmm
|
|
func VPSLLVD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSLLVD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPSLLVQ: Variable Shift Packed Quadword Data Left Logical.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSLLVQ m128 xmm xmm
|
|
// VPSLLVQ m256 ymm ymm
|
|
// VPSLLVQ xmm xmm xmm
|
|
// VPSLLVQ ymm ymm ymm
|
|
// VPSLLVQ m128 xmm k xmm
|
|
// VPSLLVQ m256 ymm k ymm
|
|
// VPSLLVQ xmm xmm k xmm
|
|
// VPSLLVQ ymm ymm k ymm
|
|
// VPSLLVQ m512 zmm k zmm
|
|
// VPSLLVQ m512 zmm zmm
|
|
// VPSLLVQ zmm zmm k zmm
|
|
// VPSLLVQ zmm zmm zmm
|
|
func VPSLLVQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSLLVQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPSLLVQ_BCST: Variable Shift Packed Quadword Data Left Logical (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSLLVQ.BCST m64 xmm k xmm
|
|
// VPSLLVQ.BCST m64 xmm xmm
|
|
// VPSLLVQ.BCST m64 ymm k ymm
|
|
// VPSLLVQ.BCST m64 ymm ymm
|
|
// VPSLLVQ.BCST m64 zmm k zmm
|
|
// VPSLLVQ.BCST m64 zmm zmm
|
|
func VPSLLVQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSLLVQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPSLLVQ_BCST_Z: Variable Shift Packed Quadword Data Left Logical (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSLLVQ.BCST.Z m64 xmm k xmm
|
|
// VPSLLVQ.BCST.Z m64 ymm k ymm
|
|
// VPSLLVQ.BCST.Z m64 zmm k zmm
|
|
func VPSLLVQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSLLVQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPSLLVQ_Z: Variable Shift Packed Quadword Data Left Logical (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSLLVQ.Z m128 xmm k xmm
|
|
// VPSLLVQ.Z m256 ymm k ymm
|
|
// VPSLLVQ.Z xmm xmm k xmm
|
|
// VPSLLVQ.Z ymm ymm k ymm
|
|
// VPSLLVQ.Z m512 zmm k zmm
|
|
// VPSLLVQ.Z zmm zmm k zmm
|
|
func VPSLLVQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSLLVQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPSLLVW: Variable Shift Packed Word Data Left Logical.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSLLVW m128 xmm k xmm
|
|
// VPSLLVW m128 xmm xmm
|
|
// VPSLLVW m256 ymm k ymm
|
|
// VPSLLVW m256 ymm ymm
|
|
// VPSLLVW xmm xmm k xmm
|
|
// VPSLLVW xmm xmm xmm
|
|
// VPSLLVW ymm ymm k ymm
|
|
// VPSLLVW ymm ymm ymm
|
|
// VPSLLVW m512 zmm k zmm
|
|
// VPSLLVW m512 zmm zmm
|
|
// VPSLLVW zmm zmm k zmm
|
|
// VPSLLVW zmm zmm zmm
|
|
func VPSLLVW(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSLLVW.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPSLLVW_Z: Variable Shift Packed Word Data Left Logical (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSLLVW.Z m128 xmm k xmm
|
|
// VPSLLVW.Z m256 ymm k ymm
|
|
// VPSLLVW.Z xmm xmm k xmm
|
|
// VPSLLVW.Z ymm ymm k ymm
|
|
// VPSLLVW.Z m512 zmm k zmm
|
|
// VPSLLVW.Z zmm zmm k zmm
|
|
func VPSLLVW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSLLVW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPSLLW: Shift Packed Word Data Left Logical.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSLLW imm8 ymm ymm
|
|
// VPSLLW m128 ymm ymm
|
|
// VPSLLW xmm ymm ymm
|
|
// VPSLLW imm8 xmm xmm
|
|
// VPSLLW m128 xmm xmm
|
|
// VPSLLW xmm xmm xmm
|
|
// VPSLLW imm8 m128 k xmm
|
|
// VPSLLW imm8 m128 xmm
|
|
// VPSLLW imm8 m256 k ymm
|
|
// VPSLLW imm8 m256 ymm
|
|
// VPSLLW imm8 xmm k xmm
|
|
// VPSLLW imm8 ymm k ymm
|
|
// VPSLLW m128 xmm k xmm
|
|
// VPSLLW m128 ymm k ymm
|
|
// VPSLLW xmm xmm k xmm
|
|
// VPSLLW xmm ymm k ymm
|
|
// VPSLLW imm8 m512 k zmm
|
|
// VPSLLW imm8 m512 zmm
|
|
// VPSLLW imm8 zmm k zmm
|
|
// VPSLLW imm8 zmm zmm
|
|
// VPSLLW m128 zmm k zmm
|
|
// VPSLLW m128 zmm zmm
|
|
// VPSLLW xmm zmm k zmm
|
|
// VPSLLW xmm zmm zmm
|
|
func VPSLLW(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSLLW.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPSLLW_Z: Shift Packed Word Data Left Logical (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSLLW.Z imm8 m128 k xmm
|
|
// VPSLLW.Z imm8 m256 k ymm
|
|
// VPSLLW.Z imm8 xmm k xmm
|
|
// VPSLLW.Z imm8 ymm k ymm
|
|
// VPSLLW.Z m128 xmm k xmm
|
|
// VPSLLW.Z m128 ymm k ymm
|
|
// VPSLLW.Z xmm xmm k xmm
|
|
// VPSLLW.Z xmm ymm k ymm
|
|
// VPSLLW.Z imm8 m512 k zmm
|
|
// VPSLLW.Z imm8 zmm k zmm
|
|
// VPSLLW.Z m128 zmm k zmm
|
|
// VPSLLW.Z xmm zmm k zmm
|
|
func VPSLLW_Z(imx, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSLLW.Forms(), sffxs{sffxZ}, []operand.Op{imx, mxyz, k, xyz})
|
|
}
|
|
|
|
// VPSRAD: Shift Packed Doubleword Data Right Arithmetic.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSRAD imm8 ymm ymm
|
|
// VPSRAD m128 ymm ymm
|
|
// VPSRAD xmm ymm ymm
|
|
// VPSRAD imm8 xmm xmm
|
|
// VPSRAD m128 xmm xmm
|
|
// VPSRAD xmm xmm xmm
|
|
// VPSRAD imm8 m128 k xmm
|
|
// VPSRAD imm8 m128 xmm
|
|
// VPSRAD imm8 m256 k ymm
|
|
// VPSRAD imm8 m256 ymm
|
|
// VPSRAD imm8 xmm k xmm
|
|
// VPSRAD imm8 ymm k ymm
|
|
// VPSRAD m128 xmm k xmm
|
|
// VPSRAD m128 ymm k ymm
|
|
// VPSRAD xmm xmm k xmm
|
|
// VPSRAD xmm ymm k ymm
|
|
// VPSRAD imm8 m512 k zmm
|
|
// VPSRAD imm8 m512 zmm
|
|
// VPSRAD imm8 zmm k zmm
|
|
// VPSRAD imm8 zmm zmm
|
|
// VPSRAD m128 zmm k zmm
|
|
// VPSRAD m128 zmm zmm
|
|
// VPSRAD xmm zmm k zmm
|
|
// VPSRAD xmm zmm zmm
|
|
func VPSRAD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSRAD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPSRAD_BCST: Shift Packed Doubleword Data Right Arithmetic (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSRAD.BCST imm8 m32 k xmm
|
|
// VPSRAD.BCST imm8 m32 k ymm
|
|
// VPSRAD.BCST imm8 m32 xmm
|
|
// VPSRAD.BCST imm8 m32 ymm
|
|
// VPSRAD.BCST imm8 m32 k zmm
|
|
// VPSRAD.BCST imm8 m32 zmm
|
|
func VPSRAD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSRAD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPSRAD_BCST_Z: Shift Packed Doubleword Data Right Arithmetic (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSRAD.BCST.Z imm8 m32 k xmm
|
|
// VPSRAD.BCST.Z imm8 m32 k ymm
|
|
// VPSRAD.BCST.Z imm8 m32 k zmm
|
|
func VPSRAD_BCST_Z(i, m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSRAD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, k, xyz})
|
|
}
|
|
|
|
// VPSRAD_Z: Shift Packed Doubleword Data Right Arithmetic (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSRAD.Z imm8 m128 k xmm
|
|
// VPSRAD.Z imm8 m256 k ymm
|
|
// VPSRAD.Z imm8 xmm k xmm
|
|
// VPSRAD.Z imm8 ymm k ymm
|
|
// VPSRAD.Z m128 xmm k xmm
|
|
// VPSRAD.Z m128 ymm k ymm
|
|
// VPSRAD.Z xmm xmm k xmm
|
|
// VPSRAD.Z xmm ymm k ymm
|
|
// VPSRAD.Z imm8 m512 k zmm
|
|
// VPSRAD.Z imm8 zmm k zmm
|
|
// VPSRAD.Z m128 zmm k zmm
|
|
// VPSRAD.Z xmm zmm k zmm
|
|
func VPSRAD_Z(imx, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSRAD.Forms(), sffxs{sffxZ}, []operand.Op{imx, mxyz, k, xyz})
|
|
}
|
|
|
|
// VPSRAQ: Shift Packed Quadword Data Right Arithmetic.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSRAQ imm8 m128 k xmm
|
|
// VPSRAQ imm8 m128 xmm
|
|
// VPSRAQ imm8 m256 k ymm
|
|
// VPSRAQ imm8 m256 ymm
|
|
// VPSRAQ imm8 xmm k xmm
|
|
// VPSRAQ imm8 xmm xmm
|
|
// VPSRAQ imm8 ymm k ymm
|
|
// VPSRAQ imm8 ymm ymm
|
|
// VPSRAQ m128 xmm k xmm
|
|
// VPSRAQ m128 xmm xmm
|
|
// VPSRAQ m128 ymm k ymm
|
|
// VPSRAQ m128 ymm ymm
|
|
// VPSRAQ xmm xmm k xmm
|
|
// VPSRAQ xmm xmm xmm
|
|
// VPSRAQ xmm ymm k ymm
|
|
// VPSRAQ xmm ymm ymm
|
|
// VPSRAQ imm8 m512 k zmm
|
|
// VPSRAQ imm8 m512 zmm
|
|
// VPSRAQ imm8 zmm k zmm
|
|
// VPSRAQ imm8 zmm zmm
|
|
// VPSRAQ m128 zmm k zmm
|
|
// VPSRAQ m128 zmm zmm
|
|
// VPSRAQ xmm zmm k zmm
|
|
// VPSRAQ xmm zmm zmm
|
|
func VPSRAQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSRAQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPSRAQ_BCST: Shift Packed Quadword Data Right Arithmetic (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSRAQ.BCST imm8 m64 k xmm
|
|
// VPSRAQ.BCST imm8 m64 k ymm
|
|
// VPSRAQ.BCST imm8 m64 xmm
|
|
// VPSRAQ.BCST imm8 m64 ymm
|
|
// VPSRAQ.BCST imm8 m64 k zmm
|
|
// VPSRAQ.BCST imm8 m64 zmm
|
|
func VPSRAQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSRAQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPSRAQ_BCST_Z: Shift Packed Quadword Data Right Arithmetic (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSRAQ.BCST.Z imm8 m64 k xmm
|
|
// VPSRAQ.BCST.Z imm8 m64 k ymm
|
|
// VPSRAQ.BCST.Z imm8 m64 k zmm
|
|
func VPSRAQ_BCST_Z(i, m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSRAQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, k, xyz})
|
|
}
|
|
|
|
// VPSRAQ_Z: Shift Packed Quadword Data Right Arithmetic (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSRAQ.Z imm8 m128 k xmm
|
|
// VPSRAQ.Z imm8 m256 k ymm
|
|
// VPSRAQ.Z imm8 xmm k xmm
|
|
// VPSRAQ.Z imm8 ymm k ymm
|
|
// VPSRAQ.Z m128 xmm k xmm
|
|
// VPSRAQ.Z m128 ymm k ymm
|
|
// VPSRAQ.Z xmm xmm k xmm
|
|
// VPSRAQ.Z xmm ymm k ymm
|
|
// VPSRAQ.Z imm8 m512 k zmm
|
|
// VPSRAQ.Z imm8 zmm k zmm
|
|
// VPSRAQ.Z m128 zmm k zmm
|
|
// VPSRAQ.Z xmm zmm k zmm
|
|
func VPSRAQ_Z(imx, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSRAQ.Forms(), sffxs{sffxZ}, []operand.Op{imx, mxyz, k, xyz})
|
|
}
|
|
|
|
// VPSRAVD: Variable Shift Packed Doubleword Data Right Arithmetic.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSRAVD m128 xmm xmm
|
|
// VPSRAVD m256 ymm ymm
|
|
// VPSRAVD xmm xmm xmm
|
|
// VPSRAVD ymm ymm ymm
|
|
// VPSRAVD m128 xmm k xmm
|
|
// VPSRAVD m256 ymm k ymm
|
|
// VPSRAVD xmm xmm k xmm
|
|
// VPSRAVD ymm ymm k ymm
|
|
// VPSRAVD m512 zmm k zmm
|
|
// VPSRAVD m512 zmm zmm
|
|
// VPSRAVD zmm zmm k zmm
|
|
// VPSRAVD zmm zmm zmm
|
|
func VPSRAVD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSRAVD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPSRAVD_BCST: Variable Shift Packed Doubleword Data Right Arithmetic (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSRAVD.BCST m32 xmm k xmm
|
|
// VPSRAVD.BCST m32 xmm xmm
|
|
// VPSRAVD.BCST m32 ymm k ymm
|
|
// VPSRAVD.BCST m32 ymm ymm
|
|
// VPSRAVD.BCST m32 zmm k zmm
|
|
// VPSRAVD.BCST m32 zmm zmm
|
|
func VPSRAVD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSRAVD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPSRAVD_BCST_Z: Variable Shift Packed Doubleword Data Right Arithmetic (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSRAVD.BCST.Z m32 xmm k xmm
|
|
// VPSRAVD.BCST.Z m32 ymm k ymm
|
|
// VPSRAVD.BCST.Z m32 zmm k zmm
|
|
func VPSRAVD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSRAVD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPSRAVD_Z: Variable Shift Packed Doubleword Data Right Arithmetic (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSRAVD.Z m128 xmm k xmm
|
|
// VPSRAVD.Z m256 ymm k ymm
|
|
// VPSRAVD.Z xmm xmm k xmm
|
|
// VPSRAVD.Z ymm ymm k ymm
|
|
// VPSRAVD.Z m512 zmm k zmm
|
|
// VPSRAVD.Z zmm zmm k zmm
|
|
func VPSRAVD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSRAVD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPSRAVQ: Variable Shift Packed Quadword Data Right Arithmetic.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSRAVQ m128 xmm k xmm
|
|
// VPSRAVQ m128 xmm xmm
|
|
// VPSRAVQ m256 ymm k ymm
|
|
// VPSRAVQ m256 ymm ymm
|
|
// VPSRAVQ xmm xmm k xmm
|
|
// VPSRAVQ xmm xmm xmm
|
|
// VPSRAVQ ymm ymm k ymm
|
|
// VPSRAVQ ymm ymm ymm
|
|
// VPSRAVQ m512 zmm k zmm
|
|
// VPSRAVQ m512 zmm zmm
|
|
// VPSRAVQ zmm zmm k zmm
|
|
// VPSRAVQ zmm zmm zmm
|
|
func VPSRAVQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSRAVQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPSRAVQ_BCST: Variable Shift Packed Quadword Data Right Arithmetic (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSRAVQ.BCST m64 xmm k xmm
|
|
// VPSRAVQ.BCST m64 xmm xmm
|
|
// VPSRAVQ.BCST m64 ymm k ymm
|
|
// VPSRAVQ.BCST m64 ymm ymm
|
|
// VPSRAVQ.BCST m64 zmm k zmm
|
|
// VPSRAVQ.BCST m64 zmm zmm
|
|
func VPSRAVQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSRAVQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPSRAVQ_BCST_Z: Variable Shift Packed Quadword Data Right Arithmetic (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSRAVQ.BCST.Z m64 xmm k xmm
|
|
// VPSRAVQ.BCST.Z m64 ymm k ymm
|
|
// VPSRAVQ.BCST.Z m64 zmm k zmm
|
|
func VPSRAVQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSRAVQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPSRAVQ_Z: Variable Shift Packed Quadword Data Right Arithmetic (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSRAVQ.Z m128 xmm k xmm
|
|
// VPSRAVQ.Z m256 ymm k ymm
|
|
// VPSRAVQ.Z xmm xmm k xmm
|
|
// VPSRAVQ.Z ymm ymm k ymm
|
|
// VPSRAVQ.Z m512 zmm k zmm
|
|
// VPSRAVQ.Z zmm zmm k zmm
|
|
func VPSRAVQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSRAVQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPSRAVW: Variable Shift Packed Word Data Right Arithmetic.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSRAVW m128 xmm k xmm
|
|
// VPSRAVW m128 xmm xmm
|
|
// VPSRAVW m256 ymm k ymm
|
|
// VPSRAVW m256 ymm ymm
|
|
// VPSRAVW xmm xmm k xmm
|
|
// VPSRAVW xmm xmm xmm
|
|
// VPSRAVW ymm ymm k ymm
|
|
// VPSRAVW ymm ymm ymm
|
|
// VPSRAVW m512 zmm k zmm
|
|
// VPSRAVW m512 zmm zmm
|
|
// VPSRAVW zmm zmm k zmm
|
|
// VPSRAVW zmm zmm zmm
|
|
func VPSRAVW(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSRAVW.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPSRAVW_Z: Variable Shift Packed Word Data Right Arithmetic (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSRAVW.Z m128 xmm k xmm
|
|
// VPSRAVW.Z m256 ymm k ymm
|
|
// VPSRAVW.Z xmm xmm k xmm
|
|
// VPSRAVW.Z ymm ymm k ymm
|
|
// VPSRAVW.Z m512 zmm k zmm
|
|
// VPSRAVW.Z zmm zmm k zmm
|
|
func VPSRAVW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSRAVW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPSRAW: Shift Packed Word Data Right Arithmetic.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSRAW imm8 ymm ymm
|
|
// VPSRAW m128 ymm ymm
|
|
// VPSRAW xmm ymm ymm
|
|
// VPSRAW imm8 xmm xmm
|
|
// VPSRAW m128 xmm xmm
|
|
// VPSRAW xmm xmm xmm
|
|
// VPSRAW imm8 m128 k xmm
|
|
// VPSRAW imm8 m128 xmm
|
|
// VPSRAW imm8 m256 k ymm
|
|
// VPSRAW imm8 m256 ymm
|
|
// VPSRAW imm8 xmm k xmm
|
|
// VPSRAW imm8 ymm k ymm
|
|
// VPSRAW m128 xmm k xmm
|
|
// VPSRAW m128 ymm k ymm
|
|
// VPSRAW xmm xmm k xmm
|
|
// VPSRAW xmm ymm k ymm
|
|
// VPSRAW imm8 m512 k zmm
|
|
// VPSRAW imm8 m512 zmm
|
|
// VPSRAW imm8 zmm k zmm
|
|
// VPSRAW imm8 zmm zmm
|
|
// VPSRAW m128 zmm k zmm
|
|
// VPSRAW m128 zmm zmm
|
|
// VPSRAW xmm zmm k zmm
|
|
// VPSRAW xmm zmm zmm
|
|
func VPSRAW(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSRAW.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPSRAW_Z: Shift Packed Word Data Right Arithmetic (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSRAW.Z imm8 m128 k xmm
|
|
// VPSRAW.Z imm8 m256 k ymm
|
|
// VPSRAW.Z imm8 xmm k xmm
|
|
// VPSRAW.Z imm8 ymm k ymm
|
|
// VPSRAW.Z m128 xmm k xmm
|
|
// VPSRAW.Z m128 ymm k ymm
|
|
// VPSRAW.Z xmm xmm k xmm
|
|
// VPSRAW.Z xmm ymm k ymm
|
|
// VPSRAW.Z imm8 m512 k zmm
|
|
// VPSRAW.Z imm8 zmm k zmm
|
|
// VPSRAW.Z m128 zmm k zmm
|
|
// VPSRAW.Z xmm zmm k zmm
|
|
func VPSRAW_Z(imx, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSRAW.Forms(), sffxs{sffxZ}, []operand.Op{imx, mxyz, k, xyz})
|
|
}
|
|
|
|
// VPSRLD: Shift Packed Doubleword Data Right Logical.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSRLD imm8 ymm ymm
|
|
// VPSRLD m128 ymm ymm
|
|
// VPSRLD xmm ymm ymm
|
|
// VPSRLD imm8 xmm xmm
|
|
// VPSRLD m128 xmm xmm
|
|
// VPSRLD xmm xmm xmm
|
|
// VPSRLD imm8 m128 k xmm
|
|
// VPSRLD imm8 m128 xmm
|
|
// VPSRLD imm8 m256 k ymm
|
|
// VPSRLD imm8 m256 ymm
|
|
// VPSRLD imm8 xmm k xmm
|
|
// VPSRLD imm8 ymm k ymm
|
|
// VPSRLD m128 xmm k xmm
|
|
// VPSRLD m128 ymm k ymm
|
|
// VPSRLD xmm xmm k xmm
|
|
// VPSRLD xmm ymm k ymm
|
|
// VPSRLD imm8 m512 k zmm
|
|
// VPSRLD imm8 m512 zmm
|
|
// VPSRLD imm8 zmm k zmm
|
|
// VPSRLD imm8 zmm zmm
|
|
// VPSRLD m128 zmm k zmm
|
|
// VPSRLD m128 zmm zmm
|
|
// VPSRLD xmm zmm k zmm
|
|
// VPSRLD xmm zmm zmm
|
|
func VPSRLD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSRLD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPSRLDQ: Shift Packed Double Quadword Right Logical.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSRLDQ imm8 ymm ymm
|
|
// VPSRLDQ imm8 xmm xmm
|
|
// VPSRLDQ imm8 m128 xmm
|
|
// VPSRLDQ imm8 m256 ymm
|
|
// VPSRLDQ imm8 m512 zmm
|
|
// VPSRLDQ imm8 zmm zmm
|
|
func VPSRLDQ(i, mxyz, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSRLDQ.Forms(), sffxs{}, []operand.Op{i, mxyz, xyz})
|
|
}
|
|
|
|
// VPSRLD_BCST: Shift Packed Doubleword Data Right Logical (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSRLD.BCST imm8 m32 k xmm
|
|
// VPSRLD.BCST imm8 m32 k ymm
|
|
// VPSRLD.BCST imm8 m32 xmm
|
|
// VPSRLD.BCST imm8 m32 ymm
|
|
// VPSRLD.BCST imm8 m32 k zmm
|
|
// VPSRLD.BCST imm8 m32 zmm
|
|
func VPSRLD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSRLD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPSRLD_BCST_Z: Shift Packed Doubleword Data Right Logical (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSRLD.BCST.Z imm8 m32 k xmm
|
|
// VPSRLD.BCST.Z imm8 m32 k ymm
|
|
// VPSRLD.BCST.Z imm8 m32 k zmm
|
|
func VPSRLD_BCST_Z(i, m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSRLD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, k, xyz})
|
|
}
|
|
|
|
// VPSRLD_Z: Shift Packed Doubleword Data Right Logical (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSRLD.Z imm8 m128 k xmm
|
|
// VPSRLD.Z imm8 m256 k ymm
|
|
// VPSRLD.Z imm8 xmm k xmm
|
|
// VPSRLD.Z imm8 ymm k ymm
|
|
// VPSRLD.Z m128 xmm k xmm
|
|
// VPSRLD.Z m128 ymm k ymm
|
|
// VPSRLD.Z xmm xmm k xmm
|
|
// VPSRLD.Z xmm ymm k ymm
|
|
// VPSRLD.Z imm8 m512 k zmm
|
|
// VPSRLD.Z imm8 zmm k zmm
|
|
// VPSRLD.Z m128 zmm k zmm
|
|
// VPSRLD.Z xmm zmm k zmm
|
|
func VPSRLD_Z(imx, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSRLD.Forms(), sffxs{sffxZ}, []operand.Op{imx, mxyz, k, xyz})
|
|
}
|
|
|
|
// VPSRLQ: Shift Packed Quadword Data Right Logical.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSRLQ imm8 ymm ymm
|
|
// VPSRLQ m128 ymm ymm
|
|
// VPSRLQ xmm ymm ymm
|
|
// VPSRLQ imm8 xmm xmm
|
|
// VPSRLQ m128 xmm xmm
|
|
// VPSRLQ xmm xmm xmm
|
|
// VPSRLQ imm8 m128 k xmm
|
|
// VPSRLQ imm8 m128 xmm
|
|
// VPSRLQ imm8 m256 k ymm
|
|
// VPSRLQ imm8 m256 ymm
|
|
// VPSRLQ imm8 xmm k xmm
|
|
// VPSRLQ imm8 ymm k ymm
|
|
// VPSRLQ m128 xmm k xmm
|
|
// VPSRLQ m128 ymm k ymm
|
|
// VPSRLQ xmm xmm k xmm
|
|
// VPSRLQ xmm ymm k ymm
|
|
// VPSRLQ imm8 m512 k zmm
|
|
// VPSRLQ imm8 m512 zmm
|
|
// VPSRLQ imm8 zmm k zmm
|
|
// VPSRLQ imm8 zmm zmm
|
|
// VPSRLQ m128 zmm k zmm
|
|
// VPSRLQ m128 zmm zmm
|
|
// VPSRLQ xmm zmm k zmm
|
|
// VPSRLQ xmm zmm zmm
|
|
func VPSRLQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSRLQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPSRLQ_BCST: Shift Packed Quadword Data Right Logical (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSRLQ.BCST imm8 m64 k xmm
|
|
// VPSRLQ.BCST imm8 m64 k ymm
|
|
// VPSRLQ.BCST imm8 m64 xmm
|
|
// VPSRLQ.BCST imm8 m64 ymm
|
|
// VPSRLQ.BCST imm8 m64 k zmm
|
|
// VPSRLQ.BCST imm8 m64 zmm
|
|
func VPSRLQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSRLQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPSRLQ_BCST_Z: Shift Packed Quadword Data Right Logical (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSRLQ.BCST.Z imm8 m64 k xmm
|
|
// VPSRLQ.BCST.Z imm8 m64 k ymm
|
|
// VPSRLQ.BCST.Z imm8 m64 k zmm
|
|
func VPSRLQ_BCST_Z(i, m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSRLQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, k, xyz})
|
|
}
|
|
|
|
// VPSRLQ_Z: Shift Packed Quadword Data Right Logical (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSRLQ.Z imm8 m128 k xmm
|
|
// VPSRLQ.Z imm8 m256 k ymm
|
|
// VPSRLQ.Z imm8 xmm k xmm
|
|
// VPSRLQ.Z imm8 ymm k ymm
|
|
// VPSRLQ.Z m128 xmm k xmm
|
|
// VPSRLQ.Z m128 ymm k ymm
|
|
// VPSRLQ.Z xmm xmm k xmm
|
|
// VPSRLQ.Z xmm ymm k ymm
|
|
// VPSRLQ.Z imm8 m512 k zmm
|
|
// VPSRLQ.Z imm8 zmm k zmm
|
|
// VPSRLQ.Z m128 zmm k zmm
|
|
// VPSRLQ.Z xmm zmm k zmm
|
|
func VPSRLQ_Z(imx, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSRLQ.Forms(), sffxs{sffxZ}, []operand.Op{imx, mxyz, k, xyz})
|
|
}
|
|
|
|
// VPSRLVD: Variable Shift Packed Doubleword Data Right Logical.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSRLVD m128 xmm xmm
|
|
// VPSRLVD m256 ymm ymm
|
|
// VPSRLVD xmm xmm xmm
|
|
// VPSRLVD ymm ymm ymm
|
|
// VPSRLVD m128 xmm k xmm
|
|
// VPSRLVD m256 ymm k ymm
|
|
// VPSRLVD xmm xmm k xmm
|
|
// VPSRLVD ymm ymm k ymm
|
|
// VPSRLVD m512 zmm k zmm
|
|
// VPSRLVD m512 zmm zmm
|
|
// VPSRLVD zmm zmm k zmm
|
|
// VPSRLVD zmm zmm zmm
|
|
func VPSRLVD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSRLVD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPSRLVD_BCST: Variable Shift Packed Doubleword Data Right Logical (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSRLVD.BCST m32 xmm k xmm
|
|
// VPSRLVD.BCST m32 xmm xmm
|
|
// VPSRLVD.BCST m32 ymm k ymm
|
|
// VPSRLVD.BCST m32 ymm ymm
|
|
// VPSRLVD.BCST m32 zmm k zmm
|
|
// VPSRLVD.BCST m32 zmm zmm
|
|
func VPSRLVD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSRLVD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPSRLVD_BCST_Z: Variable Shift Packed Doubleword Data Right Logical (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSRLVD.BCST.Z m32 xmm k xmm
|
|
// VPSRLVD.BCST.Z m32 ymm k ymm
|
|
// VPSRLVD.BCST.Z m32 zmm k zmm
|
|
func VPSRLVD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSRLVD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPSRLVD_Z: Variable Shift Packed Doubleword Data Right Logical (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSRLVD.Z m128 xmm k xmm
|
|
// VPSRLVD.Z m256 ymm k ymm
|
|
// VPSRLVD.Z xmm xmm k xmm
|
|
// VPSRLVD.Z ymm ymm k ymm
|
|
// VPSRLVD.Z m512 zmm k zmm
|
|
// VPSRLVD.Z zmm zmm k zmm
|
|
func VPSRLVD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSRLVD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPSRLVQ: Variable Shift Packed Quadword Data Right Logical.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSRLVQ m128 xmm xmm
|
|
// VPSRLVQ m256 ymm ymm
|
|
// VPSRLVQ xmm xmm xmm
|
|
// VPSRLVQ ymm ymm ymm
|
|
// VPSRLVQ m128 xmm k xmm
|
|
// VPSRLVQ m256 ymm k ymm
|
|
// VPSRLVQ xmm xmm k xmm
|
|
// VPSRLVQ ymm ymm k ymm
|
|
// VPSRLVQ m512 zmm k zmm
|
|
// VPSRLVQ m512 zmm zmm
|
|
// VPSRLVQ zmm zmm k zmm
|
|
// VPSRLVQ zmm zmm zmm
|
|
func VPSRLVQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSRLVQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPSRLVQ_BCST: Variable Shift Packed Quadword Data Right Logical (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSRLVQ.BCST m64 xmm k xmm
|
|
// VPSRLVQ.BCST m64 xmm xmm
|
|
// VPSRLVQ.BCST m64 ymm k ymm
|
|
// VPSRLVQ.BCST m64 ymm ymm
|
|
// VPSRLVQ.BCST m64 zmm k zmm
|
|
// VPSRLVQ.BCST m64 zmm zmm
|
|
func VPSRLVQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSRLVQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPSRLVQ_BCST_Z: Variable Shift Packed Quadword Data Right Logical (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSRLVQ.BCST.Z m64 xmm k xmm
|
|
// VPSRLVQ.BCST.Z m64 ymm k ymm
|
|
// VPSRLVQ.BCST.Z m64 zmm k zmm
|
|
func VPSRLVQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSRLVQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPSRLVQ_Z: Variable Shift Packed Quadword Data Right Logical (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSRLVQ.Z m128 xmm k xmm
|
|
// VPSRLVQ.Z m256 ymm k ymm
|
|
// VPSRLVQ.Z xmm xmm k xmm
|
|
// VPSRLVQ.Z ymm ymm k ymm
|
|
// VPSRLVQ.Z m512 zmm k zmm
|
|
// VPSRLVQ.Z zmm zmm k zmm
|
|
func VPSRLVQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSRLVQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPSRLVW: Variable Shift Packed Word Data Right Logical.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSRLVW m128 xmm k xmm
|
|
// VPSRLVW m128 xmm xmm
|
|
// VPSRLVW m256 ymm k ymm
|
|
// VPSRLVW m256 ymm ymm
|
|
// VPSRLVW xmm xmm k xmm
|
|
// VPSRLVW xmm xmm xmm
|
|
// VPSRLVW ymm ymm k ymm
|
|
// VPSRLVW ymm ymm ymm
|
|
// VPSRLVW m512 zmm k zmm
|
|
// VPSRLVW m512 zmm zmm
|
|
// VPSRLVW zmm zmm k zmm
|
|
// VPSRLVW zmm zmm zmm
|
|
func VPSRLVW(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSRLVW.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPSRLVW_Z: Variable Shift Packed Word Data Right Logical (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSRLVW.Z m128 xmm k xmm
|
|
// VPSRLVW.Z m256 ymm k ymm
|
|
// VPSRLVW.Z xmm xmm k xmm
|
|
// VPSRLVW.Z ymm ymm k ymm
|
|
// VPSRLVW.Z m512 zmm k zmm
|
|
// VPSRLVW.Z zmm zmm k zmm
|
|
func VPSRLVW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSRLVW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPSRLW: Shift Packed Word Data Right Logical.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSRLW imm8 ymm ymm
|
|
// VPSRLW m128 ymm ymm
|
|
// VPSRLW xmm ymm ymm
|
|
// VPSRLW imm8 xmm xmm
|
|
// VPSRLW m128 xmm xmm
|
|
// VPSRLW xmm xmm xmm
|
|
// VPSRLW imm8 m128 k xmm
|
|
// VPSRLW imm8 m128 xmm
|
|
// VPSRLW imm8 m256 k ymm
|
|
// VPSRLW imm8 m256 ymm
|
|
// VPSRLW imm8 xmm k xmm
|
|
// VPSRLW imm8 ymm k ymm
|
|
// VPSRLW m128 xmm k xmm
|
|
// VPSRLW m128 ymm k ymm
|
|
// VPSRLW xmm xmm k xmm
|
|
// VPSRLW xmm ymm k ymm
|
|
// VPSRLW imm8 m512 k zmm
|
|
// VPSRLW imm8 m512 zmm
|
|
// VPSRLW imm8 zmm k zmm
|
|
// VPSRLW imm8 zmm zmm
|
|
// VPSRLW m128 zmm k zmm
|
|
// VPSRLW m128 zmm zmm
|
|
// VPSRLW xmm zmm k zmm
|
|
// VPSRLW xmm zmm zmm
|
|
func VPSRLW(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSRLW.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPSRLW_Z: Shift Packed Word Data Right Logical (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSRLW.Z imm8 m128 k xmm
|
|
// VPSRLW.Z imm8 m256 k ymm
|
|
// VPSRLW.Z imm8 xmm k xmm
|
|
// VPSRLW.Z imm8 ymm k ymm
|
|
// VPSRLW.Z m128 xmm k xmm
|
|
// VPSRLW.Z m128 ymm k ymm
|
|
// VPSRLW.Z xmm xmm k xmm
|
|
// VPSRLW.Z xmm ymm k ymm
|
|
// VPSRLW.Z imm8 m512 k zmm
|
|
// VPSRLW.Z imm8 zmm k zmm
|
|
// VPSRLW.Z m128 zmm k zmm
|
|
// VPSRLW.Z xmm zmm k zmm
|
|
func VPSRLW_Z(imx, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSRLW.Forms(), sffxs{sffxZ}, []operand.Op{imx, mxyz, k, xyz})
|
|
}
|
|
|
|
// VPSUBB: Subtract Packed Byte Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSUBB m256 ymm ymm
|
|
// VPSUBB ymm ymm ymm
|
|
// VPSUBB m128 xmm xmm
|
|
// VPSUBB xmm xmm xmm
|
|
// VPSUBB m128 xmm k xmm
|
|
// VPSUBB m256 ymm k ymm
|
|
// VPSUBB xmm xmm k xmm
|
|
// VPSUBB ymm ymm k ymm
|
|
// VPSUBB m512 zmm k zmm
|
|
// VPSUBB m512 zmm zmm
|
|
// VPSUBB zmm zmm k zmm
|
|
// VPSUBB zmm zmm zmm
|
|
func VPSUBB(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSUBB.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPSUBB_Z: Subtract Packed Byte Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSUBB.Z m128 xmm k xmm
|
|
// VPSUBB.Z m256 ymm k ymm
|
|
// VPSUBB.Z xmm xmm k xmm
|
|
// VPSUBB.Z ymm ymm k ymm
|
|
// VPSUBB.Z m512 zmm k zmm
|
|
// VPSUBB.Z zmm zmm k zmm
|
|
func VPSUBB_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSUBB.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPSUBD: Subtract Packed Doubleword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSUBD m256 ymm ymm
|
|
// VPSUBD ymm ymm ymm
|
|
// VPSUBD m128 xmm xmm
|
|
// VPSUBD xmm xmm xmm
|
|
// VPSUBD m128 xmm k xmm
|
|
// VPSUBD m256 ymm k ymm
|
|
// VPSUBD xmm xmm k xmm
|
|
// VPSUBD ymm ymm k ymm
|
|
// VPSUBD m512 zmm k zmm
|
|
// VPSUBD m512 zmm zmm
|
|
// VPSUBD zmm zmm k zmm
|
|
// VPSUBD zmm zmm zmm
|
|
func VPSUBD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSUBD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPSUBD_BCST: Subtract Packed Doubleword Integers (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSUBD.BCST m32 xmm k xmm
|
|
// VPSUBD.BCST m32 xmm xmm
|
|
// VPSUBD.BCST m32 ymm k ymm
|
|
// VPSUBD.BCST m32 ymm ymm
|
|
// VPSUBD.BCST m32 zmm k zmm
|
|
// VPSUBD.BCST m32 zmm zmm
|
|
func VPSUBD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSUBD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPSUBD_BCST_Z: Subtract Packed Doubleword Integers (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSUBD.BCST.Z m32 xmm k xmm
|
|
// VPSUBD.BCST.Z m32 ymm k ymm
|
|
// VPSUBD.BCST.Z m32 zmm k zmm
|
|
func VPSUBD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSUBD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPSUBD_Z: Subtract Packed Doubleword Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSUBD.Z m128 xmm k xmm
|
|
// VPSUBD.Z m256 ymm k ymm
|
|
// VPSUBD.Z xmm xmm k xmm
|
|
// VPSUBD.Z ymm ymm k ymm
|
|
// VPSUBD.Z m512 zmm k zmm
|
|
// VPSUBD.Z zmm zmm k zmm
|
|
func VPSUBD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSUBD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPSUBQ: Subtract Packed Quadword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSUBQ m256 ymm ymm
|
|
// VPSUBQ ymm ymm ymm
|
|
// VPSUBQ m128 xmm xmm
|
|
// VPSUBQ xmm xmm xmm
|
|
// VPSUBQ m128 xmm k xmm
|
|
// VPSUBQ m256 ymm k ymm
|
|
// VPSUBQ xmm xmm k xmm
|
|
// VPSUBQ ymm ymm k ymm
|
|
// VPSUBQ m512 zmm k zmm
|
|
// VPSUBQ m512 zmm zmm
|
|
// VPSUBQ zmm zmm k zmm
|
|
// VPSUBQ zmm zmm zmm
|
|
func VPSUBQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSUBQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPSUBQ_BCST: Subtract Packed Quadword Integers (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSUBQ.BCST m64 xmm k xmm
|
|
// VPSUBQ.BCST m64 xmm xmm
|
|
// VPSUBQ.BCST m64 ymm k ymm
|
|
// VPSUBQ.BCST m64 ymm ymm
|
|
// VPSUBQ.BCST m64 zmm k zmm
|
|
// VPSUBQ.BCST m64 zmm zmm
|
|
func VPSUBQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSUBQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPSUBQ_BCST_Z: Subtract Packed Quadword Integers (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSUBQ.BCST.Z m64 xmm k xmm
|
|
// VPSUBQ.BCST.Z m64 ymm k ymm
|
|
// VPSUBQ.BCST.Z m64 zmm k zmm
|
|
func VPSUBQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSUBQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPSUBQ_Z: Subtract Packed Quadword Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSUBQ.Z m128 xmm k xmm
|
|
// VPSUBQ.Z m256 ymm k ymm
|
|
// VPSUBQ.Z xmm xmm k xmm
|
|
// VPSUBQ.Z ymm ymm k ymm
|
|
// VPSUBQ.Z m512 zmm k zmm
|
|
// VPSUBQ.Z zmm zmm k zmm
|
|
func VPSUBQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSUBQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPSUBSB: Subtract Packed Signed Byte Integers with Signed Saturation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSUBSB m256 ymm ymm
|
|
// VPSUBSB ymm ymm ymm
|
|
// VPSUBSB m128 xmm xmm
|
|
// VPSUBSB xmm xmm xmm
|
|
// VPSUBSB m128 xmm k xmm
|
|
// VPSUBSB m256 ymm k ymm
|
|
// VPSUBSB xmm xmm k xmm
|
|
// VPSUBSB ymm ymm k ymm
|
|
// VPSUBSB m512 zmm k zmm
|
|
// VPSUBSB m512 zmm zmm
|
|
// VPSUBSB zmm zmm k zmm
|
|
// VPSUBSB zmm zmm zmm
|
|
func VPSUBSB(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSUBSB.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPSUBSB_Z: Subtract Packed Signed Byte Integers with Signed Saturation (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSUBSB.Z m128 xmm k xmm
|
|
// VPSUBSB.Z m256 ymm k ymm
|
|
// VPSUBSB.Z xmm xmm k xmm
|
|
// VPSUBSB.Z ymm ymm k ymm
|
|
// VPSUBSB.Z m512 zmm k zmm
|
|
// VPSUBSB.Z zmm zmm k zmm
|
|
func VPSUBSB_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSUBSB.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPSUBSW: Subtract Packed Signed Word Integers with Signed Saturation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSUBSW m256 ymm ymm
|
|
// VPSUBSW ymm ymm ymm
|
|
// VPSUBSW m128 xmm xmm
|
|
// VPSUBSW xmm xmm xmm
|
|
// VPSUBSW m128 xmm k xmm
|
|
// VPSUBSW m256 ymm k ymm
|
|
// VPSUBSW xmm xmm k xmm
|
|
// VPSUBSW ymm ymm k ymm
|
|
// VPSUBSW m512 zmm k zmm
|
|
// VPSUBSW m512 zmm zmm
|
|
// VPSUBSW zmm zmm k zmm
|
|
// VPSUBSW zmm zmm zmm
|
|
func VPSUBSW(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSUBSW.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPSUBSW_Z: Subtract Packed Signed Word Integers with Signed Saturation (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSUBSW.Z m128 xmm k xmm
|
|
// VPSUBSW.Z m256 ymm k ymm
|
|
// VPSUBSW.Z xmm xmm k xmm
|
|
// VPSUBSW.Z ymm ymm k ymm
|
|
// VPSUBSW.Z m512 zmm k zmm
|
|
// VPSUBSW.Z zmm zmm k zmm
|
|
func VPSUBSW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSUBSW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPSUBUSB: Subtract Packed Unsigned Byte Integers with Unsigned Saturation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSUBUSB m256 ymm ymm
|
|
// VPSUBUSB ymm ymm ymm
|
|
// VPSUBUSB m128 xmm xmm
|
|
// VPSUBUSB xmm xmm xmm
|
|
// VPSUBUSB m128 xmm k xmm
|
|
// VPSUBUSB m256 ymm k ymm
|
|
// VPSUBUSB xmm xmm k xmm
|
|
// VPSUBUSB ymm ymm k ymm
|
|
// VPSUBUSB m512 zmm k zmm
|
|
// VPSUBUSB m512 zmm zmm
|
|
// VPSUBUSB zmm zmm k zmm
|
|
// VPSUBUSB zmm zmm zmm
|
|
func VPSUBUSB(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSUBUSB.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPSUBUSB_Z: Subtract Packed Unsigned Byte Integers with Unsigned Saturation (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSUBUSB.Z m128 xmm k xmm
|
|
// VPSUBUSB.Z m256 ymm k ymm
|
|
// VPSUBUSB.Z xmm xmm k xmm
|
|
// VPSUBUSB.Z ymm ymm k ymm
|
|
// VPSUBUSB.Z m512 zmm k zmm
|
|
// VPSUBUSB.Z zmm zmm k zmm
|
|
func VPSUBUSB_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSUBUSB.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPSUBUSW: Subtract Packed Unsigned Word Integers with Unsigned Saturation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSUBUSW m256 ymm ymm
|
|
// VPSUBUSW ymm ymm ymm
|
|
// VPSUBUSW m128 xmm xmm
|
|
// VPSUBUSW xmm xmm xmm
|
|
// VPSUBUSW m128 xmm k xmm
|
|
// VPSUBUSW m256 ymm k ymm
|
|
// VPSUBUSW xmm xmm k xmm
|
|
// VPSUBUSW ymm ymm k ymm
|
|
// VPSUBUSW m512 zmm k zmm
|
|
// VPSUBUSW m512 zmm zmm
|
|
// VPSUBUSW zmm zmm k zmm
|
|
// VPSUBUSW zmm zmm zmm
|
|
func VPSUBUSW(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSUBUSW.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPSUBUSW_Z: Subtract Packed Unsigned Word Integers with Unsigned Saturation (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSUBUSW.Z m128 xmm k xmm
|
|
// VPSUBUSW.Z m256 ymm k ymm
|
|
// VPSUBUSW.Z xmm xmm k xmm
|
|
// VPSUBUSW.Z ymm ymm k ymm
|
|
// VPSUBUSW.Z m512 zmm k zmm
|
|
// VPSUBUSW.Z zmm zmm k zmm
|
|
func VPSUBUSW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSUBUSW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPSUBW: Subtract Packed Word Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSUBW m256 ymm ymm
|
|
// VPSUBW ymm ymm ymm
|
|
// VPSUBW m128 xmm xmm
|
|
// VPSUBW xmm xmm xmm
|
|
// VPSUBW m128 xmm k xmm
|
|
// VPSUBW m256 ymm k ymm
|
|
// VPSUBW xmm xmm k xmm
|
|
// VPSUBW ymm ymm k ymm
|
|
// VPSUBW m512 zmm k zmm
|
|
// VPSUBW m512 zmm zmm
|
|
// VPSUBW zmm zmm k zmm
|
|
// VPSUBW zmm zmm zmm
|
|
func VPSUBW(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSUBW.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPSUBW_Z: Subtract Packed Word Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPSUBW.Z m128 xmm k xmm
|
|
// VPSUBW.Z m256 ymm k ymm
|
|
// VPSUBW.Z xmm xmm k xmm
|
|
// VPSUBW.Z ymm ymm k ymm
|
|
// VPSUBW.Z m512 zmm k zmm
|
|
// VPSUBW.Z zmm zmm k zmm
|
|
func VPSUBW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPSUBW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPTERNLOGD: Bitwise Ternary Logical Operation on Doubleword Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPTERNLOGD imm8 m128 xmm k xmm
|
|
// VPTERNLOGD imm8 m128 xmm xmm
|
|
// VPTERNLOGD imm8 m256 ymm k ymm
|
|
// VPTERNLOGD imm8 m256 ymm ymm
|
|
// VPTERNLOGD imm8 xmm xmm k xmm
|
|
// VPTERNLOGD imm8 xmm xmm xmm
|
|
// VPTERNLOGD imm8 ymm ymm k ymm
|
|
// VPTERNLOGD imm8 ymm ymm ymm
|
|
// VPTERNLOGD imm8 m512 zmm k zmm
|
|
// VPTERNLOGD imm8 m512 zmm zmm
|
|
// VPTERNLOGD imm8 zmm zmm k zmm
|
|
// VPTERNLOGD imm8 zmm zmm zmm
|
|
func VPTERNLOGD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPTERNLOGD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPTERNLOGD_BCST: Bitwise Ternary Logical Operation on Doubleword Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPTERNLOGD.BCST imm8 m32 xmm k xmm
|
|
// VPTERNLOGD.BCST imm8 m32 xmm xmm
|
|
// VPTERNLOGD.BCST imm8 m32 ymm k ymm
|
|
// VPTERNLOGD.BCST imm8 m32 ymm ymm
|
|
// VPTERNLOGD.BCST imm8 m32 zmm k zmm
|
|
// VPTERNLOGD.BCST imm8 m32 zmm zmm
|
|
func VPTERNLOGD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPTERNLOGD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPTERNLOGD_BCST_Z: Bitwise Ternary Logical Operation on Doubleword Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPTERNLOGD.BCST.Z imm8 m32 xmm k xmm
|
|
// VPTERNLOGD.BCST.Z imm8 m32 ymm k ymm
|
|
// VPTERNLOGD.BCST.Z imm8 m32 zmm k zmm
|
|
func VPTERNLOGD_BCST_Z(i, m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPTERNLOGD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPTERNLOGD_Z: Bitwise Ternary Logical Operation on Doubleword Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPTERNLOGD.Z imm8 m128 xmm k xmm
|
|
// VPTERNLOGD.Z imm8 m256 ymm k ymm
|
|
// VPTERNLOGD.Z imm8 xmm xmm k xmm
|
|
// VPTERNLOGD.Z imm8 ymm ymm k ymm
|
|
// VPTERNLOGD.Z imm8 m512 zmm k zmm
|
|
// VPTERNLOGD.Z imm8 zmm zmm k zmm
|
|
func VPTERNLOGD_Z(i, mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPTERNLOGD.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPTERNLOGQ: Bitwise Ternary Logical Operation on Quadword Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPTERNLOGQ imm8 m128 xmm k xmm
|
|
// VPTERNLOGQ imm8 m128 xmm xmm
|
|
// VPTERNLOGQ imm8 m256 ymm k ymm
|
|
// VPTERNLOGQ imm8 m256 ymm ymm
|
|
// VPTERNLOGQ imm8 xmm xmm k xmm
|
|
// VPTERNLOGQ imm8 xmm xmm xmm
|
|
// VPTERNLOGQ imm8 ymm ymm k ymm
|
|
// VPTERNLOGQ imm8 ymm ymm ymm
|
|
// VPTERNLOGQ imm8 m512 zmm k zmm
|
|
// VPTERNLOGQ imm8 m512 zmm zmm
|
|
// VPTERNLOGQ imm8 zmm zmm k zmm
|
|
// VPTERNLOGQ imm8 zmm zmm zmm
|
|
func VPTERNLOGQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPTERNLOGQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPTERNLOGQ_BCST: Bitwise Ternary Logical Operation on Quadword Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPTERNLOGQ.BCST imm8 m64 xmm k xmm
|
|
// VPTERNLOGQ.BCST imm8 m64 xmm xmm
|
|
// VPTERNLOGQ.BCST imm8 m64 ymm k ymm
|
|
// VPTERNLOGQ.BCST imm8 m64 ymm ymm
|
|
// VPTERNLOGQ.BCST imm8 m64 zmm k zmm
|
|
// VPTERNLOGQ.BCST imm8 m64 zmm zmm
|
|
func VPTERNLOGQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPTERNLOGQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPTERNLOGQ_BCST_Z: Bitwise Ternary Logical Operation on Quadword Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPTERNLOGQ.BCST.Z imm8 m64 xmm k xmm
|
|
// VPTERNLOGQ.BCST.Z imm8 m64 ymm k ymm
|
|
// VPTERNLOGQ.BCST.Z imm8 m64 zmm k zmm
|
|
func VPTERNLOGQ_BCST_Z(i, m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPTERNLOGQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPTERNLOGQ_Z: Bitwise Ternary Logical Operation on Quadword Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPTERNLOGQ.Z imm8 m128 xmm k xmm
|
|
// VPTERNLOGQ.Z imm8 m256 ymm k ymm
|
|
// VPTERNLOGQ.Z imm8 xmm xmm k xmm
|
|
// VPTERNLOGQ.Z imm8 ymm ymm k ymm
|
|
// VPTERNLOGQ.Z imm8 m512 zmm k zmm
|
|
// VPTERNLOGQ.Z imm8 zmm zmm k zmm
|
|
func VPTERNLOGQ_Z(i, mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPTERNLOGQ.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPTEST: Packed Logical Compare.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPTEST m128 xmm
|
|
// VPTEST m256 ymm
|
|
// VPTEST xmm xmm
|
|
// VPTEST ymm ymm
|
|
func VPTEST(mxy, xy operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPTEST.Forms(), sffxs{}, []operand.Op{mxy, xy})
|
|
}
|
|
|
|
// VPTESTMB: Logical AND of Packed Byte Integer Values and Set Mask.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPTESTMB m128 xmm k k
|
|
// VPTESTMB m128 xmm k
|
|
// VPTESTMB m256 ymm k k
|
|
// VPTESTMB m256 ymm k
|
|
// VPTESTMB xmm xmm k k
|
|
// VPTESTMB xmm xmm k
|
|
// VPTESTMB ymm ymm k k
|
|
// VPTESTMB ymm ymm k
|
|
// VPTESTMB m512 zmm k k
|
|
// VPTESTMB m512 zmm k
|
|
// VPTESTMB zmm zmm k k
|
|
// VPTESTMB zmm zmm k
|
|
func VPTESTMB(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPTESTMB.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPTESTMD: Logical AND of Packed Doubleword Integer Values and Set Mask.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPTESTMD m128 xmm k k
|
|
// VPTESTMD m128 xmm k
|
|
// VPTESTMD m256 ymm k k
|
|
// VPTESTMD m256 ymm k
|
|
// VPTESTMD xmm xmm k k
|
|
// VPTESTMD xmm xmm k
|
|
// VPTESTMD ymm ymm k k
|
|
// VPTESTMD ymm ymm k
|
|
// VPTESTMD m512 zmm k k
|
|
// VPTESTMD m512 zmm k
|
|
// VPTESTMD zmm zmm k k
|
|
// VPTESTMD zmm zmm k
|
|
func VPTESTMD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPTESTMD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPTESTMD_BCST: Logical AND of Packed Doubleword Integer Values and Set Mask (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPTESTMD.BCST m32 xmm k k
|
|
// VPTESTMD.BCST m32 xmm k
|
|
// VPTESTMD.BCST m32 ymm k k
|
|
// VPTESTMD.BCST m32 ymm k
|
|
// VPTESTMD.BCST m32 zmm k k
|
|
// VPTESTMD.BCST m32 zmm k
|
|
func VPTESTMD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPTESTMD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPTESTMQ: Logical AND of Packed Quadword Integer Values and Set Mask.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPTESTMQ m128 xmm k k
|
|
// VPTESTMQ m128 xmm k
|
|
// VPTESTMQ m256 ymm k k
|
|
// VPTESTMQ m256 ymm k
|
|
// VPTESTMQ xmm xmm k k
|
|
// VPTESTMQ xmm xmm k
|
|
// VPTESTMQ ymm ymm k k
|
|
// VPTESTMQ ymm ymm k
|
|
// VPTESTMQ m512 zmm k k
|
|
// VPTESTMQ m512 zmm k
|
|
// VPTESTMQ zmm zmm k k
|
|
// VPTESTMQ zmm zmm k
|
|
func VPTESTMQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPTESTMQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPTESTMQ_BCST: Logical AND of Packed Quadword Integer Values and Set Mask (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPTESTMQ.BCST m64 xmm k k
|
|
// VPTESTMQ.BCST m64 xmm k
|
|
// VPTESTMQ.BCST m64 ymm k k
|
|
// VPTESTMQ.BCST m64 ymm k
|
|
// VPTESTMQ.BCST m64 zmm k k
|
|
// VPTESTMQ.BCST m64 zmm k
|
|
func VPTESTMQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPTESTMQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPTESTMW: Logical AND of Packed Word Integer Values and Set Mask.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPTESTMW m128 xmm k k
|
|
// VPTESTMW m128 xmm k
|
|
// VPTESTMW m256 ymm k k
|
|
// VPTESTMW m256 ymm k
|
|
// VPTESTMW xmm xmm k k
|
|
// VPTESTMW xmm xmm k
|
|
// VPTESTMW ymm ymm k k
|
|
// VPTESTMW ymm ymm k
|
|
// VPTESTMW m512 zmm k k
|
|
// VPTESTMW m512 zmm k
|
|
// VPTESTMW zmm zmm k k
|
|
// VPTESTMW zmm zmm k
|
|
func VPTESTMW(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPTESTMW.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPTESTNMB: Logical NAND of Packed Byte Integer Values and Set Mask.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPTESTNMB m512 zmm k k
|
|
// VPTESTNMB m512 zmm k
|
|
// VPTESTNMB zmm zmm k k
|
|
// VPTESTNMB zmm zmm k
|
|
// VPTESTNMB m128 xmm k k
|
|
// VPTESTNMB m128 xmm k
|
|
// VPTESTNMB m256 ymm k k
|
|
// VPTESTNMB m256 ymm k
|
|
// VPTESTNMB xmm xmm k k
|
|
// VPTESTNMB xmm xmm k
|
|
// VPTESTNMB ymm ymm k k
|
|
// VPTESTNMB ymm ymm k
|
|
func VPTESTNMB(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPTESTNMB.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPTESTNMD: Logical NAND of Packed Doubleword Integer Values and Set Mask.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPTESTNMD m128 xmm k k
|
|
// VPTESTNMD m128 xmm k
|
|
// VPTESTNMD m256 ymm k k
|
|
// VPTESTNMD m256 ymm k
|
|
// VPTESTNMD xmm xmm k k
|
|
// VPTESTNMD xmm xmm k
|
|
// VPTESTNMD ymm ymm k k
|
|
// VPTESTNMD ymm ymm k
|
|
// VPTESTNMD m512 zmm k k
|
|
// VPTESTNMD m512 zmm k
|
|
// VPTESTNMD zmm zmm k k
|
|
// VPTESTNMD zmm zmm k
|
|
func VPTESTNMD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPTESTNMD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPTESTNMD_BCST: Logical NAND of Packed Doubleword Integer Values and Set Mask (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPTESTNMD.BCST m32 xmm k k
|
|
// VPTESTNMD.BCST m32 xmm k
|
|
// VPTESTNMD.BCST m32 ymm k k
|
|
// VPTESTNMD.BCST m32 ymm k
|
|
// VPTESTNMD.BCST m32 zmm k k
|
|
// VPTESTNMD.BCST m32 zmm k
|
|
func VPTESTNMD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPTESTNMD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPTESTNMQ: Logical NAND of Packed Quadword Integer Values and Set Mask.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPTESTNMQ m128 xmm k k
|
|
// VPTESTNMQ m128 xmm k
|
|
// VPTESTNMQ m256 ymm k k
|
|
// VPTESTNMQ m256 ymm k
|
|
// VPTESTNMQ xmm xmm k k
|
|
// VPTESTNMQ xmm xmm k
|
|
// VPTESTNMQ ymm ymm k k
|
|
// VPTESTNMQ ymm ymm k
|
|
// VPTESTNMQ m512 zmm k k
|
|
// VPTESTNMQ m512 zmm k
|
|
// VPTESTNMQ zmm zmm k k
|
|
// VPTESTNMQ zmm zmm k
|
|
func VPTESTNMQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPTESTNMQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPTESTNMQ_BCST: Logical NAND of Packed Quadword Integer Values and Set Mask (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPTESTNMQ.BCST m64 xmm k k
|
|
// VPTESTNMQ.BCST m64 xmm k
|
|
// VPTESTNMQ.BCST m64 ymm k k
|
|
// VPTESTNMQ.BCST m64 ymm k
|
|
// VPTESTNMQ.BCST m64 zmm k k
|
|
// VPTESTNMQ.BCST m64 zmm k
|
|
func VPTESTNMQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPTESTNMQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPTESTNMW: Logical NAND of Packed Word Integer Values and Set Mask.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPTESTNMW m512 zmm k k
|
|
// VPTESTNMW m512 zmm k
|
|
// VPTESTNMW zmm zmm k k
|
|
// VPTESTNMW zmm zmm k
|
|
// VPTESTNMW m128 xmm k k
|
|
// VPTESTNMW m128 xmm k
|
|
// VPTESTNMW m256 ymm k k
|
|
// VPTESTNMW m256 ymm k
|
|
// VPTESTNMW xmm xmm k k
|
|
// VPTESTNMW xmm xmm k
|
|
// VPTESTNMW ymm ymm k k
|
|
// VPTESTNMW ymm ymm k
|
|
func VPTESTNMW(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPTESTNMW.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPUNPCKHBW: Unpack and Interleave High-Order Bytes into Words.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPUNPCKHBW m256 ymm ymm
|
|
// VPUNPCKHBW ymm ymm ymm
|
|
// VPUNPCKHBW m128 xmm xmm
|
|
// VPUNPCKHBW xmm xmm xmm
|
|
// VPUNPCKHBW m128 xmm k xmm
|
|
// VPUNPCKHBW m256 ymm k ymm
|
|
// VPUNPCKHBW xmm xmm k xmm
|
|
// VPUNPCKHBW ymm ymm k ymm
|
|
// VPUNPCKHBW m512 zmm k zmm
|
|
// VPUNPCKHBW m512 zmm zmm
|
|
// VPUNPCKHBW zmm zmm k zmm
|
|
// VPUNPCKHBW zmm zmm zmm
|
|
func VPUNPCKHBW(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPUNPCKHBW.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPUNPCKHBW_Z: Unpack and Interleave High-Order Bytes into Words (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPUNPCKHBW.Z m128 xmm k xmm
|
|
// VPUNPCKHBW.Z m256 ymm k ymm
|
|
// VPUNPCKHBW.Z xmm xmm k xmm
|
|
// VPUNPCKHBW.Z ymm ymm k ymm
|
|
// VPUNPCKHBW.Z m512 zmm k zmm
|
|
// VPUNPCKHBW.Z zmm zmm k zmm
|
|
func VPUNPCKHBW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPUNPCKHBW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPUNPCKHDQ: Unpack and Interleave High-Order Doublewords into Quadwords.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPUNPCKHDQ m256 ymm ymm
|
|
// VPUNPCKHDQ ymm ymm ymm
|
|
// VPUNPCKHDQ m128 xmm xmm
|
|
// VPUNPCKHDQ xmm xmm xmm
|
|
// VPUNPCKHDQ m128 xmm k xmm
|
|
// VPUNPCKHDQ m256 ymm k ymm
|
|
// VPUNPCKHDQ xmm xmm k xmm
|
|
// VPUNPCKHDQ ymm ymm k ymm
|
|
// VPUNPCKHDQ m512 zmm k zmm
|
|
// VPUNPCKHDQ m512 zmm zmm
|
|
// VPUNPCKHDQ zmm zmm k zmm
|
|
// VPUNPCKHDQ zmm zmm zmm
|
|
func VPUNPCKHDQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPUNPCKHDQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPUNPCKHDQ_BCST: Unpack and Interleave High-Order Doublewords into Quadwords (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPUNPCKHDQ.BCST m32 xmm k xmm
|
|
// VPUNPCKHDQ.BCST m32 xmm xmm
|
|
// VPUNPCKHDQ.BCST m32 ymm k ymm
|
|
// VPUNPCKHDQ.BCST m32 ymm ymm
|
|
// VPUNPCKHDQ.BCST m32 zmm k zmm
|
|
// VPUNPCKHDQ.BCST m32 zmm zmm
|
|
func VPUNPCKHDQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPUNPCKHDQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPUNPCKHDQ_BCST_Z: Unpack and Interleave High-Order Doublewords into Quadwords (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPUNPCKHDQ.BCST.Z m32 xmm k xmm
|
|
// VPUNPCKHDQ.BCST.Z m32 ymm k ymm
|
|
// VPUNPCKHDQ.BCST.Z m32 zmm k zmm
|
|
func VPUNPCKHDQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPUNPCKHDQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPUNPCKHDQ_Z: Unpack and Interleave High-Order Doublewords into Quadwords (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPUNPCKHDQ.Z m128 xmm k xmm
|
|
// VPUNPCKHDQ.Z m256 ymm k ymm
|
|
// VPUNPCKHDQ.Z xmm xmm k xmm
|
|
// VPUNPCKHDQ.Z ymm ymm k ymm
|
|
// VPUNPCKHDQ.Z m512 zmm k zmm
|
|
// VPUNPCKHDQ.Z zmm zmm k zmm
|
|
func VPUNPCKHDQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPUNPCKHDQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPUNPCKHQDQ: Unpack and Interleave High-Order Quadwords into Double Quadwords.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPUNPCKHQDQ m256 ymm ymm
|
|
// VPUNPCKHQDQ ymm ymm ymm
|
|
// VPUNPCKHQDQ m128 xmm xmm
|
|
// VPUNPCKHQDQ xmm xmm xmm
|
|
// VPUNPCKHQDQ m128 xmm k xmm
|
|
// VPUNPCKHQDQ m256 ymm k ymm
|
|
// VPUNPCKHQDQ xmm xmm k xmm
|
|
// VPUNPCKHQDQ ymm ymm k ymm
|
|
// VPUNPCKHQDQ m512 zmm k zmm
|
|
// VPUNPCKHQDQ m512 zmm zmm
|
|
// VPUNPCKHQDQ zmm zmm k zmm
|
|
// VPUNPCKHQDQ zmm zmm zmm
|
|
func VPUNPCKHQDQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPUNPCKHQDQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPUNPCKHQDQ_BCST: Unpack and Interleave High-Order Quadwords into Double Quadwords (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPUNPCKHQDQ.BCST m64 xmm k xmm
|
|
// VPUNPCKHQDQ.BCST m64 xmm xmm
|
|
// VPUNPCKHQDQ.BCST m64 ymm k ymm
|
|
// VPUNPCKHQDQ.BCST m64 ymm ymm
|
|
// VPUNPCKHQDQ.BCST m64 zmm k zmm
|
|
// VPUNPCKHQDQ.BCST m64 zmm zmm
|
|
func VPUNPCKHQDQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPUNPCKHQDQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPUNPCKHQDQ_BCST_Z: Unpack and Interleave High-Order Quadwords into Double Quadwords (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPUNPCKHQDQ.BCST.Z m64 xmm k xmm
|
|
// VPUNPCKHQDQ.BCST.Z m64 ymm k ymm
|
|
// VPUNPCKHQDQ.BCST.Z m64 zmm k zmm
|
|
func VPUNPCKHQDQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPUNPCKHQDQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPUNPCKHQDQ_Z: Unpack and Interleave High-Order Quadwords into Double Quadwords (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPUNPCKHQDQ.Z m128 xmm k xmm
|
|
// VPUNPCKHQDQ.Z m256 ymm k ymm
|
|
// VPUNPCKHQDQ.Z xmm xmm k xmm
|
|
// VPUNPCKHQDQ.Z ymm ymm k ymm
|
|
// VPUNPCKHQDQ.Z m512 zmm k zmm
|
|
// VPUNPCKHQDQ.Z zmm zmm k zmm
|
|
func VPUNPCKHQDQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPUNPCKHQDQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPUNPCKHWD: Unpack and Interleave High-Order Words into Doublewords.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPUNPCKHWD m256 ymm ymm
|
|
// VPUNPCKHWD ymm ymm ymm
|
|
// VPUNPCKHWD m128 xmm xmm
|
|
// VPUNPCKHWD xmm xmm xmm
|
|
// VPUNPCKHWD m128 xmm k xmm
|
|
// VPUNPCKHWD m256 ymm k ymm
|
|
// VPUNPCKHWD xmm xmm k xmm
|
|
// VPUNPCKHWD ymm ymm k ymm
|
|
// VPUNPCKHWD m512 zmm k zmm
|
|
// VPUNPCKHWD m512 zmm zmm
|
|
// VPUNPCKHWD zmm zmm k zmm
|
|
// VPUNPCKHWD zmm zmm zmm
|
|
func VPUNPCKHWD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPUNPCKHWD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPUNPCKHWD_Z: Unpack and Interleave High-Order Words into Doublewords (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPUNPCKHWD.Z m128 xmm k xmm
|
|
// VPUNPCKHWD.Z m256 ymm k ymm
|
|
// VPUNPCKHWD.Z xmm xmm k xmm
|
|
// VPUNPCKHWD.Z ymm ymm k ymm
|
|
// VPUNPCKHWD.Z m512 zmm k zmm
|
|
// VPUNPCKHWD.Z zmm zmm k zmm
|
|
func VPUNPCKHWD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPUNPCKHWD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPUNPCKLBW: Unpack and Interleave Low-Order Bytes into Words.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPUNPCKLBW m256 ymm ymm
|
|
// VPUNPCKLBW ymm ymm ymm
|
|
// VPUNPCKLBW m128 xmm xmm
|
|
// VPUNPCKLBW xmm xmm xmm
|
|
// VPUNPCKLBW m128 xmm k xmm
|
|
// VPUNPCKLBW m256 ymm k ymm
|
|
// VPUNPCKLBW xmm xmm k xmm
|
|
// VPUNPCKLBW ymm ymm k ymm
|
|
// VPUNPCKLBW m512 zmm k zmm
|
|
// VPUNPCKLBW m512 zmm zmm
|
|
// VPUNPCKLBW zmm zmm k zmm
|
|
// VPUNPCKLBW zmm zmm zmm
|
|
func VPUNPCKLBW(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPUNPCKLBW.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPUNPCKLBW_Z: Unpack and Interleave Low-Order Bytes into Words (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPUNPCKLBW.Z m128 xmm k xmm
|
|
// VPUNPCKLBW.Z m256 ymm k ymm
|
|
// VPUNPCKLBW.Z xmm xmm k xmm
|
|
// VPUNPCKLBW.Z ymm ymm k ymm
|
|
// VPUNPCKLBW.Z m512 zmm k zmm
|
|
// VPUNPCKLBW.Z zmm zmm k zmm
|
|
func VPUNPCKLBW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPUNPCKLBW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPUNPCKLDQ: Unpack and Interleave Low-Order Doublewords into Quadwords.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPUNPCKLDQ m256 ymm ymm
|
|
// VPUNPCKLDQ ymm ymm ymm
|
|
// VPUNPCKLDQ m128 xmm xmm
|
|
// VPUNPCKLDQ xmm xmm xmm
|
|
// VPUNPCKLDQ m128 xmm k xmm
|
|
// VPUNPCKLDQ m256 ymm k ymm
|
|
// VPUNPCKLDQ xmm xmm k xmm
|
|
// VPUNPCKLDQ ymm ymm k ymm
|
|
// VPUNPCKLDQ m512 zmm k zmm
|
|
// VPUNPCKLDQ m512 zmm zmm
|
|
// VPUNPCKLDQ zmm zmm k zmm
|
|
// VPUNPCKLDQ zmm zmm zmm
|
|
func VPUNPCKLDQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPUNPCKLDQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPUNPCKLDQ_BCST: Unpack and Interleave Low-Order Doublewords into Quadwords (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPUNPCKLDQ.BCST m32 xmm k xmm
|
|
// VPUNPCKLDQ.BCST m32 xmm xmm
|
|
// VPUNPCKLDQ.BCST m32 ymm k ymm
|
|
// VPUNPCKLDQ.BCST m32 ymm ymm
|
|
// VPUNPCKLDQ.BCST m32 zmm k zmm
|
|
// VPUNPCKLDQ.BCST m32 zmm zmm
|
|
func VPUNPCKLDQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPUNPCKLDQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPUNPCKLDQ_BCST_Z: Unpack and Interleave Low-Order Doublewords into Quadwords (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPUNPCKLDQ.BCST.Z m32 xmm k xmm
|
|
// VPUNPCKLDQ.BCST.Z m32 ymm k ymm
|
|
// VPUNPCKLDQ.BCST.Z m32 zmm k zmm
|
|
func VPUNPCKLDQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPUNPCKLDQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPUNPCKLDQ_Z: Unpack and Interleave Low-Order Doublewords into Quadwords (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPUNPCKLDQ.Z m128 xmm k xmm
|
|
// VPUNPCKLDQ.Z m256 ymm k ymm
|
|
// VPUNPCKLDQ.Z xmm xmm k xmm
|
|
// VPUNPCKLDQ.Z ymm ymm k ymm
|
|
// VPUNPCKLDQ.Z m512 zmm k zmm
|
|
// VPUNPCKLDQ.Z zmm zmm k zmm
|
|
func VPUNPCKLDQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPUNPCKLDQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPUNPCKLQDQ: Unpack and Interleave Low-Order Quadwords into Double Quadwords.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPUNPCKLQDQ m256 ymm ymm
|
|
// VPUNPCKLQDQ ymm ymm ymm
|
|
// VPUNPCKLQDQ m128 xmm xmm
|
|
// VPUNPCKLQDQ xmm xmm xmm
|
|
// VPUNPCKLQDQ m128 xmm k xmm
|
|
// VPUNPCKLQDQ m256 ymm k ymm
|
|
// VPUNPCKLQDQ xmm xmm k xmm
|
|
// VPUNPCKLQDQ ymm ymm k ymm
|
|
// VPUNPCKLQDQ m512 zmm k zmm
|
|
// VPUNPCKLQDQ m512 zmm zmm
|
|
// VPUNPCKLQDQ zmm zmm k zmm
|
|
// VPUNPCKLQDQ zmm zmm zmm
|
|
func VPUNPCKLQDQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPUNPCKLQDQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPUNPCKLQDQ_BCST: Unpack and Interleave Low-Order Quadwords into Double Quadwords (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPUNPCKLQDQ.BCST m64 xmm k xmm
|
|
// VPUNPCKLQDQ.BCST m64 xmm xmm
|
|
// VPUNPCKLQDQ.BCST m64 ymm k ymm
|
|
// VPUNPCKLQDQ.BCST m64 ymm ymm
|
|
// VPUNPCKLQDQ.BCST m64 zmm k zmm
|
|
// VPUNPCKLQDQ.BCST m64 zmm zmm
|
|
func VPUNPCKLQDQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPUNPCKLQDQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPUNPCKLQDQ_BCST_Z: Unpack and Interleave Low-Order Quadwords into Double Quadwords (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPUNPCKLQDQ.BCST.Z m64 xmm k xmm
|
|
// VPUNPCKLQDQ.BCST.Z m64 ymm k ymm
|
|
// VPUNPCKLQDQ.BCST.Z m64 zmm k zmm
|
|
func VPUNPCKLQDQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPUNPCKLQDQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPUNPCKLQDQ_Z: Unpack and Interleave Low-Order Quadwords into Double Quadwords (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPUNPCKLQDQ.Z m128 xmm k xmm
|
|
// VPUNPCKLQDQ.Z m256 ymm k ymm
|
|
// VPUNPCKLQDQ.Z xmm xmm k xmm
|
|
// VPUNPCKLQDQ.Z ymm ymm k ymm
|
|
// VPUNPCKLQDQ.Z m512 zmm k zmm
|
|
// VPUNPCKLQDQ.Z zmm zmm k zmm
|
|
func VPUNPCKLQDQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPUNPCKLQDQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPUNPCKLWD: Unpack and Interleave Low-Order Words into Doublewords.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPUNPCKLWD m256 ymm ymm
|
|
// VPUNPCKLWD ymm ymm ymm
|
|
// VPUNPCKLWD m128 xmm xmm
|
|
// VPUNPCKLWD xmm xmm xmm
|
|
// VPUNPCKLWD m128 xmm k xmm
|
|
// VPUNPCKLWD m256 ymm k ymm
|
|
// VPUNPCKLWD xmm xmm k xmm
|
|
// VPUNPCKLWD ymm ymm k ymm
|
|
// VPUNPCKLWD m512 zmm k zmm
|
|
// VPUNPCKLWD m512 zmm zmm
|
|
// VPUNPCKLWD zmm zmm k zmm
|
|
// VPUNPCKLWD zmm zmm zmm
|
|
func VPUNPCKLWD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPUNPCKLWD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPUNPCKLWD_Z: Unpack and Interleave Low-Order Words into Doublewords (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPUNPCKLWD.Z m128 xmm k xmm
|
|
// VPUNPCKLWD.Z m256 ymm k ymm
|
|
// VPUNPCKLWD.Z xmm xmm k xmm
|
|
// VPUNPCKLWD.Z ymm ymm k ymm
|
|
// VPUNPCKLWD.Z m512 zmm k zmm
|
|
// VPUNPCKLWD.Z zmm zmm k zmm
|
|
func VPUNPCKLWD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPUNPCKLWD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPXOR: Packed Bitwise Logical Exclusive OR.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPXOR m256 ymm ymm
|
|
// VPXOR ymm ymm ymm
|
|
// VPXOR m128 xmm xmm
|
|
// VPXOR xmm xmm xmm
|
|
func VPXOR(mxy, xy, xy1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPXOR.Forms(), sffxs{}, []operand.Op{mxy, xy, xy1})
|
|
}
|
|
|
|
// VPXORD: Bitwise Logical Exclusive OR of Packed Doubleword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPXORD m128 xmm k xmm
|
|
// VPXORD m128 xmm xmm
|
|
// VPXORD m256 ymm k ymm
|
|
// VPXORD m256 ymm ymm
|
|
// VPXORD xmm xmm k xmm
|
|
// VPXORD xmm xmm xmm
|
|
// VPXORD ymm ymm k ymm
|
|
// VPXORD ymm ymm ymm
|
|
// VPXORD m512 zmm k zmm
|
|
// VPXORD m512 zmm zmm
|
|
// VPXORD zmm zmm k zmm
|
|
// VPXORD zmm zmm zmm
|
|
func VPXORD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPXORD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPXORD_BCST: Bitwise Logical Exclusive OR of Packed Doubleword Integers (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPXORD.BCST m32 xmm k xmm
|
|
// VPXORD.BCST m32 xmm xmm
|
|
// VPXORD.BCST m32 ymm k ymm
|
|
// VPXORD.BCST m32 ymm ymm
|
|
// VPXORD.BCST m32 zmm k zmm
|
|
// VPXORD.BCST m32 zmm zmm
|
|
func VPXORD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPXORD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPXORD_BCST_Z: Bitwise Logical Exclusive OR of Packed Doubleword Integers (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPXORD.BCST.Z m32 xmm k xmm
|
|
// VPXORD.BCST.Z m32 ymm k ymm
|
|
// VPXORD.BCST.Z m32 zmm k zmm
|
|
func VPXORD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPXORD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPXORD_Z: Bitwise Logical Exclusive OR of Packed Doubleword Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPXORD.Z m128 xmm k xmm
|
|
// VPXORD.Z m256 ymm k ymm
|
|
// VPXORD.Z xmm xmm k xmm
|
|
// VPXORD.Z ymm ymm k ymm
|
|
// VPXORD.Z m512 zmm k zmm
|
|
// VPXORD.Z zmm zmm k zmm
|
|
func VPXORD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPXORD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPXORQ: Bitwise Logical Exclusive OR of Packed Quadword Integers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPXORQ m128 xmm k xmm
|
|
// VPXORQ m128 xmm xmm
|
|
// VPXORQ m256 ymm k ymm
|
|
// VPXORQ m256 ymm ymm
|
|
// VPXORQ xmm xmm k xmm
|
|
// VPXORQ xmm xmm xmm
|
|
// VPXORQ ymm ymm k ymm
|
|
// VPXORQ ymm ymm ymm
|
|
// VPXORQ m512 zmm k zmm
|
|
// VPXORQ m512 zmm zmm
|
|
// VPXORQ zmm zmm k zmm
|
|
// VPXORQ zmm zmm zmm
|
|
func VPXORQ(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPXORQ.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VPXORQ_BCST: Bitwise Logical Exclusive OR of Packed Quadword Integers (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPXORQ.BCST m64 xmm k xmm
|
|
// VPXORQ.BCST m64 xmm xmm
|
|
// VPXORQ.BCST m64 ymm k ymm
|
|
// VPXORQ.BCST m64 ymm ymm
|
|
// VPXORQ.BCST m64 zmm k zmm
|
|
// VPXORQ.BCST m64 zmm zmm
|
|
func VPXORQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPXORQ.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VPXORQ_BCST_Z: Bitwise Logical Exclusive OR of Packed Quadword Integers (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPXORQ.BCST.Z m64 xmm k xmm
|
|
// VPXORQ.BCST.Z m64 ymm k ymm
|
|
// VPXORQ.BCST.Z m64 zmm k zmm
|
|
func VPXORQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPXORQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VPXORQ_Z: Bitwise Logical Exclusive OR of Packed Quadword Integers (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VPXORQ.Z m128 xmm k xmm
|
|
// VPXORQ.Z m256 ymm k ymm
|
|
// VPXORQ.Z xmm xmm k xmm
|
|
// VPXORQ.Z ymm ymm k ymm
|
|
// VPXORQ.Z m512 zmm k zmm
|
|
// VPXORQ.Z zmm zmm k zmm
|
|
func VPXORQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVPXORQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VRANGEPD: Range Restriction Calculation For Packed Pairs of Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRANGEPD imm8 m128 xmm k xmm
|
|
// VRANGEPD imm8 m128 xmm xmm
|
|
// VRANGEPD imm8 m256 ymm k ymm
|
|
// VRANGEPD imm8 m256 ymm ymm
|
|
// VRANGEPD imm8 xmm xmm k xmm
|
|
// VRANGEPD imm8 xmm xmm xmm
|
|
// VRANGEPD imm8 ymm ymm k ymm
|
|
// VRANGEPD imm8 ymm ymm ymm
|
|
// VRANGEPD imm8 m512 zmm k zmm
|
|
// VRANGEPD imm8 m512 zmm zmm
|
|
// VRANGEPD imm8 zmm zmm k zmm
|
|
// VRANGEPD imm8 zmm zmm zmm
|
|
func VRANGEPD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRANGEPD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VRANGEPD_BCST: Range Restriction Calculation For Packed Pairs of Double-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRANGEPD.BCST imm8 m64 xmm k xmm
|
|
// VRANGEPD.BCST imm8 m64 xmm xmm
|
|
// VRANGEPD.BCST imm8 m64 ymm k ymm
|
|
// VRANGEPD.BCST imm8 m64 ymm ymm
|
|
// VRANGEPD.BCST imm8 m64 zmm k zmm
|
|
// VRANGEPD.BCST imm8 m64 zmm zmm
|
|
func VRANGEPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRANGEPD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VRANGEPD_BCST_Z: Range Restriction Calculation For Packed Pairs of Double-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRANGEPD.BCST.Z imm8 m64 xmm k xmm
|
|
// VRANGEPD.BCST.Z imm8 m64 ymm k ymm
|
|
// VRANGEPD.BCST.Z imm8 m64 zmm k zmm
|
|
func VRANGEPD_BCST_Z(i, m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRANGEPD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VRANGEPD_SAE: Range Restriction Calculation For Packed Pairs of Double-Precision Floating-Point Values (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRANGEPD.SAE imm8 zmm zmm k zmm
|
|
// VRANGEPD.SAE imm8 zmm zmm zmm
|
|
func VRANGEPD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRANGEPD.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VRANGEPD_SAE_Z: Range Restriction Calculation For Packed Pairs of Double-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRANGEPD.SAE.Z imm8 zmm zmm k zmm
|
|
func VRANGEPD_SAE_Z(i, z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRANGEPD.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{i, z, z1, k, z2})
|
|
}
|
|
|
|
// VRANGEPD_Z: Range Restriction Calculation For Packed Pairs of Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRANGEPD.Z imm8 m128 xmm k xmm
|
|
// VRANGEPD.Z imm8 m256 ymm k ymm
|
|
// VRANGEPD.Z imm8 xmm xmm k xmm
|
|
// VRANGEPD.Z imm8 ymm ymm k ymm
|
|
// VRANGEPD.Z imm8 m512 zmm k zmm
|
|
// VRANGEPD.Z imm8 zmm zmm k zmm
|
|
func VRANGEPD_Z(i, mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRANGEPD.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VRANGEPS: Range Restriction Calculation For Packed Pairs of Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRANGEPS imm8 m128 xmm k xmm
|
|
// VRANGEPS imm8 m128 xmm xmm
|
|
// VRANGEPS imm8 m256 ymm k ymm
|
|
// VRANGEPS imm8 m256 ymm ymm
|
|
// VRANGEPS imm8 xmm xmm k xmm
|
|
// VRANGEPS imm8 xmm xmm xmm
|
|
// VRANGEPS imm8 ymm ymm k ymm
|
|
// VRANGEPS imm8 ymm ymm ymm
|
|
// VRANGEPS imm8 m512 zmm k zmm
|
|
// VRANGEPS imm8 m512 zmm zmm
|
|
// VRANGEPS imm8 zmm zmm k zmm
|
|
// VRANGEPS imm8 zmm zmm zmm
|
|
func VRANGEPS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRANGEPS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VRANGEPS_BCST: Range Restriction Calculation For Packed Pairs of Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRANGEPS.BCST imm8 m32 xmm k xmm
|
|
// VRANGEPS.BCST imm8 m32 xmm xmm
|
|
// VRANGEPS.BCST imm8 m32 ymm k ymm
|
|
// VRANGEPS.BCST imm8 m32 ymm ymm
|
|
// VRANGEPS.BCST imm8 m32 zmm k zmm
|
|
// VRANGEPS.BCST imm8 m32 zmm zmm
|
|
func VRANGEPS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRANGEPS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VRANGEPS_BCST_Z: Range Restriction Calculation For Packed Pairs of Single-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRANGEPS.BCST.Z imm8 m32 xmm k xmm
|
|
// VRANGEPS.BCST.Z imm8 m32 ymm k ymm
|
|
// VRANGEPS.BCST.Z imm8 m32 zmm k zmm
|
|
func VRANGEPS_BCST_Z(i, m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRANGEPS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VRANGEPS_SAE: Range Restriction Calculation For Packed Pairs of Single-Precision Floating-Point Values (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRANGEPS.SAE imm8 zmm zmm k zmm
|
|
// VRANGEPS.SAE imm8 zmm zmm zmm
|
|
func VRANGEPS_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRANGEPS.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VRANGEPS_SAE_Z: Range Restriction Calculation For Packed Pairs of Single-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRANGEPS.SAE.Z imm8 zmm zmm k zmm
|
|
func VRANGEPS_SAE_Z(i, z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRANGEPS.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{i, z, z1, k, z2})
|
|
}
|
|
|
|
// VRANGEPS_Z: Range Restriction Calculation For Packed Pairs of Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRANGEPS.Z imm8 m128 xmm k xmm
|
|
// VRANGEPS.Z imm8 m256 ymm k ymm
|
|
// VRANGEPS.Z imm8 xmm xmm k xmm
|
|
// VRANGEPS.Z imm8 ymm ymm k ymm
|
|
// VRANGEPS.Z imm8 m512 zmm k zmm
|
|
// VRANGEPS.Z imm8 zmm zmm k zmm
|
|
func VRANGEPS_Z(i, mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRANGEPS.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VRANGESD: Range Restriction Calculation For a pair of Scalar Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRANGESD imm8 m64 xmm k xmm
|
|
// VRANGESD imm8 m64 xmm xmm
|
|
// VRANGESD imm8 xmm xmm k xmm
|
|
// VRANGESD imm8 xmm xmm xmm
|
|
func VRANGESD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRANGESD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VRANGESD_SAE: Range Restriction Calculation For a pair of Scalar Double-Precision Floating-Point Values (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRANGESD.SAE imm8 xmm xmm k xmm
|
|
// VRANGESD.SAE imm8 xmm xmm xmm
|
|
func VRANGESD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRANGESD.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VRANGESD_SAE_Z: Range Restriction Calculation For a pair of Scalar Double-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRANGESD.SAE.Z imm8 xmm xmm k xmm
|
|
func VRANGESD_SAE_Z(i, x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRANGESD.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{i, x, x1, k, x2})
|
|
}
|
|
|
|
// VRANGESD_Z: Range Restriction Calculation For a pair of Scalar Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRANGESD.Z imm8 m64 xmm k xmm
|
|
// VRANGESD.Z imm8 xmm xmm k xmm
|
|
func VRANGESD_Z(i, mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRANGESD.Forms(), sffxs{sffxZ}, []operand.Op{i, mx, x, k, x1})
|
|
}
|
|
|
|
// VRANGESS: Range Restriction Calculation For a pair of Scalar Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRANGESS imm8 m32 xmm k xmm
|
|
// VRANGESS imm8 m32 xmm xmm
|
|
// VRANGESS imm8 xmm xmm k xmm
|
|
// VRANGESS imm8 xmm xmm xmm
|
|
func VRANGESS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRANGESS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VRANGESS_SAE: Range Restriction Calculation For a pair of Scalar Single-Precision Floating-Point Values (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRANGESS.SAE imm8 xmm xmm k xmm
|
|
// VRANGESS.SAE imm8 xmm xmm xmm
|
|
func VRANGESS_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRANGESS.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VRANGESS_SAE_Z: Range Restriction Calculation For a pair of Scalar Single-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRANGESS.SAE.Z imm8 xmm xmm k xmm
|
|
func VRANGESS_SAE_Z(i, x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRANGESS.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{i, x, x1, k, x2})
|
|
}
|
|
|
|
// VRANGESS_Z: Range Restriction Calculation For a pair of Scalar Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRANGESS.Z imm8 m32 xmm k xmm
|
|
// VRANGESS.Z imm8 xmm xmm k xmm
|
|
func VRANGESS_Z(i, mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRANGESS.Forms(), sffxs{sffxZ}, []operand.Op{i, mx, x, k, x1})
|
|
}
|
|
|
|
// VRCP14PD: Compute Approximate Reciprocals of Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRCP14PD m128 k xmm
|
|
// VRCP14PD m128 xmm
|
|
// VRCP14PD m256 k ymm
|
|
// VRCP14PD m256 ymm
|
|
// VRCP14PD xmm k xmm
|
|
// VRCP14PD xmm xmm
|
|
// VRCP14PD ymm k ymm
|
|
// VRCP14PD ymm ymm
|
|
// VRCP14PD m512 k zmm
|
|
// VRCP14PD m512 zmm
|
|
// VRCP14PD zmm k zmm
|
|
// VRCP14PD zmm zmm
|
|
func VRCP14PD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRCP14PD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VRCP14PD_BCST: Compute Approximate Reciprocals of Packed Double-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRCP14PD.BCST m64 k xmm
|
|
// VRCP14PD.BCST m64 k ymm
|
|
// VRCP14PD.BCST m64 xmm
|
|
// VRCP14PD.BCST m64 ymm
|
|
// VRCP14PD.BCST m64 k zmm
|
|
// VRCP14PD.BCST m64 zmm
|
|
func VRCP14PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRCP14PD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VRCP14PD_BCST_Z: Compute Approximate Reciprocals of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRCP14PD.BCST.Z m64 k xmm
|
|
// VRCP14PD.BCST.Z m64 k ymm
|
|
// VRCP14PD.BCST.Z m64 k zmm
|
|
func VRCP14PD_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRCP14PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz})
|
|
}
|
|
|
|
// VRCP14PD_Z: Compute Approximate Reciprocals of Packed Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRCP14PD.Z m128 k xmm
|
|
// VRCP14PD.Z m256 k ymm
|
|
// VRCP14PD.Z xmm k xmm
|
|
// VRCP14PD.Z ymm k ymm
|
|
// VRCP14PD.Z m512 k zmm
|
|
// VRCP14PD.Z zmm k zmm
|
|
func VRCP14PD_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRCP14PD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz})
|
|
}
|
|
|
|
// VRCP14PS: Compute Approximate Reciprocals of Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRCP14PS m128 k xmm
|
|
// VRCP14PS m128 xmm
|
|
// VRCP14PS m256 k ymm
|
|
// VRCP14PS m256 ymm
|
|
// VRCP14PS xmm k xmm
|
|
// VRCP14PS xmm xmm
|
|
// VRCP14PS ymm k ymm
|
|
// VRCP14PS ymm ymm
|
|
// VRCP14PS m512 k zmm
|
|
// VRCP14PS m512 zmm
|
|
// VRCP14PS zmm k zmm
|
|
// VRCP14PS zmm zmm
|
|
func VRCP14PS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRCP14PS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VRCP14PS_BCST: Compute Approximate Reciprocals of Packed Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRCP14PS.BCST m32 k xmm
|
|
// VRCP14PS.BCST m32 k ymm
|
|
// VRCP14PS.BCST m32 xmm
|
|
// VRCP14PS.BCST m32 ymm
|
|
// VRCP14PS.BCST m32 k zmm
|
|
// VRCP14PS.BCST m32 zmm
|
|
func VRCP14PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRCP14PS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VRCP14PS_BCST_Z: Compute Approximate Reciprocals of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRCP14PS.BCST.Z m32 k xmm
|
|
// VRCP14PS.BCST.Z m32 k ymm
|
|
// VRCP14PS.BCST.Z m32 k zmm
|
|
func VRCP14PS_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRCP14PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz})
|
|
}
|
|
|
|
// VRCP14PS_Z: Compute Approximate Reciprocals of Packed Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRCP14PS.Z m128 k xmm
|
|
// VRCP14PS.Z m256 k ymm
|
|
// VRCP14PS.Z xmm k xmm
|
|
// VRCP14PS.Z ymm k ymm
|
|
// VRCP14PS.Z m512 k zmm
|
|
// VRCP14PS.Z zmm k zmm
|
|
func VRCP14PS_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRCP14PS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz})
|
|
}
|
|
|
|
// VRCP14SD: Compute Approximate Reciprocal of a Scalar Double-Precision Floating-Point Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRCP14SD m64 xmm k xmm
|
|
// VRCP14SD m64 xmm xmm
|
|
// VRCP14SD xmm xmm k xmm
|
|
// VRCP14SD xmm xmm xmm
|
|
func VRCP14SD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRCP14SD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VRCP14SD_Z: Compute Approximate Reciprocal of a Scalar Double-Precision Floating-Point Value (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRCP14SD.Z m64 xmm k xmm
|
|
// VRCP14SD.Z xmm xmm k xmm
|
|
func VRCP14SD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRCP14SD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VRCP14SS: Compute Approximate Reciprocal of a Scalar Single-Precision Floating-Point Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRCP14SS m32 xmm k xmm
|
|
// VRCP14SS m32 xmm xmm
|
|
// VRCP14SS xmm xmm k xmm
|
|
// VRCP14SS xmm xmm xmm
|
|
func VRCP14SS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRCP14SS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VRCP14SS_Z: Compute Approximate Reciprocal of a Scalar Single-Precision Floating-Point Value (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRCP14SS.Z m32 xmm k xmm
|
|
// VRCP14SS.Z xmm xmm k xmm
|
|
func VRCP14SS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRCP14SS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VRCP28PD: Approximation to the Reciprocal of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRCP28PD m512 k zmm
|
|
// VRCP28PD m512 zmm
|
|
// VRCP28PD zmm k zmm
|
|
// VRCP28PD zmm zmm
|
|
func VRCP28PD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRCP28PD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VRCP28PD_BCST: Approximation to the Reciprocal of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRCP28PD.BCST m64 k zmm
|
|
// VRCP28PD.BCST m64 zmm
|
|
func VRCP28PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRCP28PD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VRCP28PD_BCST_Z: Approximation to the Reciprocal of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRCP28PD.BCST.Z m64 k zmm
|
|
func VRCP28PD_BCST_Z(m, k, z operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRCP28PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, z})
|
|
}
|
|
|
|
// VRCP28PD_SAE: Approximation to the Reciprocal of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRCP28PD.SAE zmm k zmm
|
|
// VRCP28PD.SAE zmm zmm
|
|
func VRCP28PD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRCP28PD.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VRCP28PD_SAE_Z: Approximation to the Reciprocal of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Suppress All Exceptions, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRCP28PD.SAE.Z zmm k zmm
|
|
func VRCP28PD_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRCP28PD.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VRCP28PD_Z: Approximation to the Reciprocal of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRCP28PD.Z m512 k zmm
|
|
// VRCP28PD.Z zmm k zmm
|
|
func VRCP28PD_Z(mz, k, z operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRCP28PD.Forms(), sffxs{sffxZ}, []operand.Op{mz, k, z})
|
|
}
|
|
|
|
// VRCP28PS: Approximation to the Reciprocal of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRCP28PS m512 k zmm
|
|
// VRCP28PS m512 zmm
|
|
// VRCP28PS zmm k zmm
|
|
// VRCP28PS zmm zmm
|
|
func VRCP28PS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRCP28PS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VRCP28PS_BCST: Approximation to the Reciprocal of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRCP28PS.BCST m32 k zmm
|
|
// VRCP28PS.BCST m32 zmm
|
|
func VRCP28PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRCP28PS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VRCP28PS_BCST_Z: Approximation to the Reciprocal of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRCP28PS.BCST.Z m32 k zmm
|
|
func VRCP28PS_BCST_Z(m, k, z operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRCP28PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, z})
|
|
}
|
|
|
|
// VRCP28PS_SAE: Approximation to the Reciprocal of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRCP28PS.SAE zmm k zmm
|
|
// VRCP28PS.SAE zmm zmm
|
|
func VRCP28PS_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRCP28PS.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VRCP28PS_SAE_Z: Approximation to the Reciprocal of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Suppress All Exceptions, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRCP28PS.SAE.Z zmm k zmm
|
|
func VRCP28PS_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRCP28PS.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VRCP28PS_Z: Approximation to the Reciprocal of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRCP28PS.Z m512 k zmm
|
|
// VRCP28PS.Z zmm k zmm
|
|
func VRCP28PS_Z(mz, k, z operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRCP28PS.Forms(), sffxs{sffxZ}, []operand.Op{mz, k, z})
|
|
}
|
|
|
|
// VRCP28SD: Approximation to the Reciprocal of a Scalar Double-Precision Floating-Point Value with Less Than 2^-28 Relative Error.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRCP28SD m64 xmm k xmm
|
|
// VRCP28SD m64 xmm xmm
|
|
// VRCP28SD xmm xmm k xmm
|
|
// VRCP28SD xmm xmm xmm
|
|
func VRCP28SD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRCP28SD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VRCP28SD_SAE: Approximation to the Reciprocal of a Scalar Double-Precision Floating-Point Value with Less Than 2^-28 Relative Error (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRCP28SD.SAE xmm xmm k xmm
|
|
// VRCP28SD.SAE xmm xmm xmm
|
|
func VRCP28SD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRCP28SD.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VRCP28SD_SAE_Z: Approximation to the Reciprocal of a Scalar Double-Precision Floating-Point Value with Less Than 2^-28 Relative Error (Suppress All Exceptions, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRCP28SD.SAE.Z xmm xmm k xmm
|
|
func VRCP28SD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRCP28SD.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VRCP28SD_Z: Approximation to the Reciprocal of a Scalar Double-Precision Floating-Point Value with Less Than 2^-28 Relative Error (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRCP28SD.Z m64 xmm k xmm
|
|
// VRCP28SD.Z xmm xmm k xmm
|
|
func VRCP28SD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRCP28SD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VRCP28SS: Approximation to the Reciprocal of a Scalar Single-Precision Floating-Point Value with Less Than 2^-28 Relative Error.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRCP28SS m32 xmm k xmm
|
|
// VRCP28SS m32 xmm xmm
|
|
// VRCP28SS xmm xmm k xmm
|
|
// VRCP28SS xmm xmm xmm
|
|
func VRCP28SS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRCP28SS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VRCP28SS_SAE: Approximation to the Reciprocal of a Scalar Single-Precision Floating-Point Value with Less Than 2^-28 Relative Error (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRCP28SS.SAE xmm xmm k xmm
|
|
// VRCP28SS.SAE xmm xmm xmm
|
|
func VRCP28SS_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRCP28SS.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VRCP28SS_SAE_Z: Approximation to the Reciprocal of a Scalar Single-Precision Floating-Point Value with Less Than 2^-28 Relative Error (Suppress All Exceptions, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRCP28SS.SAE.Z xmm xmm k xmm
|
|
func VRCP28SS_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRCP28SS.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VRCP28SS_Z: Approximation to the Reciprocal of a Scalar Single-Precision Floating-Point Value with Less Than 2^-28 Relative Error (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRCP28SS.Z m32 xmm k xmm
|
|
// VRCP28SS.Z xmm xmm k xmm
|
|
func VRCP28SS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRCP28SS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VRCPPS: Compute Approximate Reciprocals of Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRCPPS m128 xmm
|
|
// VRCPPS m256 ymm
|
|
// VRCPPS xmm xmm
|
|
// VRCPPS ymm ymm
|
|
func VRCPPS(mxy, xy operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRCPPS.Forms(), sffxs{}, []operand.Op{mxy, xy})
|
|
}
|
|
|
|
// VRCPSS: Compute Approximate Reciprocal of Scalar Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRCPSS m32 xmm xmm
|
|
// VRCPSS xmm xmm xmm
|
|
func VRCPSS(mx, x, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRCPSS.Forms(), sffxs{}, []operand.Op{mx, x, x1})
|
|
}
|
|
|
|
// VREDUCEPD: Perform Reduction Transformation on Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VREDUCEPD imm8 m128 k xmm
|
|
// VREDUCEPD imm8 m128 xmm
|
|
// VREDUCEPD imm8 m256 k ymm
|
|
// VREDUCEPD imm8 m256 ymm
|
|
// VREDUCEPD imm8 xmm k xmm
|
|
// VREDUCEPD imm8 xmm xmm
|
|
// VREDUCEPD imm8 ymm k ymm
|
|
// VREDUCEPD imm8 ymm ymm
|
|
// VREDUCEPD imm8 m512 k zmm
|
|
// VREDUCEPD imm8 m512 zmm
|
|
// VREDUCEPD imm8 zmm k zmm
|
|
// VREDUCEPD imm8 zmm zmm
|
|
func VREDUCEPD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVREDUCEPD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VREDUCEPD_BCST: Perform Reduction Transformation on Packed Double-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VREDUCEPD.BCST imm8 m64 k xmm
|
|
// VREDUCEPD.BCST imm8 m64 k ymm
|
|
// VREDUCEPD.BCST imm8 m64 xmm
|
|
// VREDUCEPD.BCST imm8 m64 ymm
|
|
// VREDUCEPD.BCST imm8 m64 k zmm
|
|
// VREDUCEPD.BCST imm8 m64 zmm
|
|
func VREDUCEPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVREDUCEPD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VREDUCEPD_BCST_Z: Perform Reduction Transformation on Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VREDUCEPD.BCST.Z imm8 m64 k xmm
|
|
// VREDUCEPD.BCST.Z imm8 m64 k ymm
|
|
// VREDUCEPD.BCST.Z imm8 m64 k zmm
|
|
func VREDUCEPD_BCST_Z(i, m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVREDUCEPD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, k, xyz})
|
|
}
|
|
|
|
// VREDUCEPD_Z: Perform Reduction Transformation on Packed Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VREDUCEPD.Z imm8 m128 k xmm
|
|
// VREDUCEPD.Z imm8 m256 k ymm
|
|
// VREDUCEPD.Z imm8 xmm k xmm
|
|
// VREDUCEPD.Z imm8 ymm k ymm
|
|
// VREDUCEPD.Z imm8 m512 k zmm
|
|
// VREDUCEPD.Z imm8 zmm k zmm
|
|
func VREDUCEPD_Z(i, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVREDUCEPD.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, k, xyz})
|
|
}
|
|
|
|
// VREDUCEPS: Perform Reduction Transformation on Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VREDUCEPS imm8 m128 k xmm
|
|
// VREDUCEPS imm8 m128 xmm
|
|
// VREDUCEPS imm8 m256 k ymm
|
|
// VREDUCEPS imm8 m256 ymm
|
|
// VREDUCEPS imm8 xmm k xmm
|
|
// VREDUCEPS imm8 xmm xmm
|
|
// VREDUCEPS imm8 ymm k ymm
|
|
// VREDUCEPS imm8 ymm ymm
|
|
// VREDUCEPS imm8 m512 k zmm
|
|
// VREDUCEPS imm8 m512 zmm
|
|
// VREDUCEPS imm8 zmm k zmm
|
|
// VREDUCEPS imm8 zmm zmm
|
|
func VREDUCEPS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVREDUCEPS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VREDUCEPS_BCST: Perform Reduction Transformation on Packed Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VREDUCEPS.BCST imm8 m32 k xmm
|
|
// VREDUCEPS.BCST imm8 m32 k ymm
|
|
// VREDUCEPS.BCST imm8 m32 xmm
|
|
// VREDUCEPS.BCST imm8 m32 ymm
|
|
// VREDUCEPS.BCST imm8 m32 k zmm
|
|
// VREDUCEPS.BCST imm8 m32 zmm
|
|
func VREDUCEPS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVREDUCEPS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VREDUCEPS_BCST_Z: Perform Reduction Transformation on Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VREDUCEPS.BCST.Z imm8 m32 k xmm
|
|
// VREDUCEPS.BCST.Z imm8 m32 k ymm
|
|
// VREDUCEPS.BCST.Z imm8 m32 k zmm
|
|
func VREDUCEPS_BCST_Z(i, m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVREDUCEPS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, k, xyz})
|
|
}
|
|
|
|
// VREDUCEPS_Z: Perform Reduction Transformation on Packed Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VREDUCEPS.Z imm8 m128 k xmm
|
|
// VREDUCEPS.Z imm8 m256 k ymm
|
|
// VREDUCEPS.Z imm8 xmm k xmm
|
|
// VREDUCEPS.Z imm8 ymm k ymm
|
|
// VREDUCEPS.Z imm8 m512 k zmm
|
|
// VREDUCEPS.Z imm8 zmm k zmm
|
|
func VREDUCEPS_Z(i, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVREDUCEPS.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, k, xyz})
|
|
}
|
|
|
|
// VREDUCESD: Perform Reduction Transformation on a Scalar Double-Precision Floating-Point Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VREDUCESD imm8 m64 xmm k xmm
|
|
// VREDUCESD imm8 m64 xmm xmm
|
|
// VREDUCESD imm8 xmm xmm k xmm
|
|
// VREDUCESD imm8 xmm xmm xmm
|
|
func VREDUCESD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVREDUCESD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VREDUCESD_Z: Perform Reduction Transformation on a Scalar Double-Precision Floating-Point Value (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VREDUCESD.Z imm8 m64 xmm k xmm
|
|
// VREDUCESD.Z imm8 xmm xmm k xmm
|
|
func VREDUCESD_Z(i, mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVREDUCESD.Forms(), sffxs{sffxZ}, []operand.Op{i, mx, x, k, x1})
|
|
}
|
|
|
|
// VREDUCESS: Perform Reduction Transformation on a Scalar Single-Precision Floating-Point Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VREDUCESS imm8 m32 xmm k xmm
|
|
// VREDUCESS imm8 m32 xmm xmm
|
|
// VREDUCESS imm8 xmm xmm k xmm
|
|
// VREDUCESS imm8 xmm xmm xmm
|
|
func VREDUCESS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVREDUCESS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VREDUCESS_Z: Perform Reduction Transformation on a Scalar Single-Precision Floating-Point Value (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VREDUCESS.Z imm8 m32 xmm k xmm
|
|
// VREDUCESS.Z imm8 xmm xmm k xmm
|
|
func VREDUCESS_Z(i, mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVREDUCESS.Forms(), sffxs{sffxZ}, []operand.Op{i, mx, x, k, x1})
|
|
}
|
|
|
|
// VRNDSCALEPD: Round Packed Double-Precision Floating-Point Values To Include A Given Number Of Fraction Bits.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRNDSCALEPD imm8 m128 k xmm
|
|
// VRNDSCALEPD imm8 m128 xmm
|
|
// VRNDSCALEPD imm8 m256 k ymm
|
|
// VRNDSCALEPD imm8 m256 ymm
|
|
// VRNDSCALEPD imm8 xmm k xmm
|
|
// VRNDSCALEPD imm8 xmm xmm
|
|
// VRNDSCALEPD imm8 ymm k ymm
|
|
// VRNDSCALEPD imm8 ymm ymm
|
|
// VRNDSCALEPD imm8 m512 k zmm
|
|
// VRNDSCALEPD imm8 m512 zmm
|
|
// VRNDSCALEPD imm8 zmm k zmm
|
|
// VRNDSCALEPD imm8 zmm zmm
|
|
func VRNDSCALEPD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRNDSCALEPD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VRNDSCALEPD_BCST: Round Packed Double-Precision Floating-Point Values To Include A Given Number Of Fraction Bits (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRNDSCALEPD.BCST imm8 m64 k xmm
|
|
// VRNDSCALEPD.BCST imm8 m64 k ymm
|
|
// VRNDSCALEPD.BCST imm8 m64 xmm
|
|
// VRNDSCALEPD.BCST imm8 m64 ymm
|
|
// VRNDSCALEPD.BCST imm8 m64 k zmm
|
|
// VRNDSCALEPD.BCST imm8 m64 zmm
|
|
func VRNDSCALEPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRNDSCALEPD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VRNDSCALEPD_BCST_Z: Round Packed Double-Precision Floating-Point Values To Include A Given Number Of Fraction Bits (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRNDSCALEPD.BCST.Z imm8 m64 k xmm
|
|
// VRNDSCALEPD.BCST.Z imm8 m64 k ymm
|
|
// VRNDSCALEPD.BCST.Z imm8 m64 k zmm
|
|
func VRNDSCALEPD_BCST_Z(i, m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRNDSCALEPD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, k, xyz})
|
|
}
|
|
|
|
// VRNDSCALEPD_SAE: Round Packed Double-Precision Floating-Point Values To Include A Given Number Of Fraction Bits (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRNDSCALEPD.SAE imm8 zmm k zmm
|
|
// VRNDSCALEPD.SAE imm8 zmm zmm
|
|
func VRNDSCALEPD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRNDSCALEPD.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VRNDSCALEPD_SAE_Z: Round Packed Double-Precision Floating-Point Values To Include A Given Number Of Fraction Bits (Suppress All Exceptions, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRNDSCALEPD.SAE.Z imm8 zmm k zmm
|
|
func VRNDSCALEPD_SAE_Z(i, z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRNDSCALEPD.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{i, z, k, z1})
|
|
}
|
|
|
|
// VRNDSCALEPD_Z: Round Packed Double-Precision Floating-Point Values To Include A Given Number Of Fraction Bits (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRNDSCALEPD.Z imm8 m128 k xmm
|
|
// VRNDSCALEPD.Z imm8 m256 k ymm
|
|
// VRNDSCALEPD.Z imm8 xmm k xmm
|
|
// VRNDSCALEPD.Z imm8 ymm k ymm
|
|
// VRNDSCALEPD.Z imm8 m512 k zmm
|
|
// VRNDSCALEPD.Z imm8 zmm k zmm
|
|
func VRNDSCALEPD_Z(i, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRNDSCALEPD.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, k, xyz})
|
|
}
|
|
|
|
// VRNDSCALEPS: Round Packed Single-Precision Floating-Point Values To Include A Given Number Of Fraction Bits.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRNDSCALEPS imm8 m128 k xmm
|
|
// VRNDSCALEPS imm8 m128 xmm
|
|
// VRNDSCALEPS imm8 m256 k ymm
|
|
// VRNDSCALEPS imm8 m256 ymm
|
|
// VRNDSCALEPS imm8 xmm k xmm
|
|
// VRNDSCALEPS imm8 xmm xmm
|
|
// VRNDSCALEPS imm8 ymm k ymm
|
|
// VRNDSCALEPS imm8 ymm ymm
|
|
// VRNDSCALEPS imm8 m512 k zmm
|
|
// VRNDSCALEPS imm8 m512 zmm
|
|
// VRNDSCALEPS imm8 zmm k zmm
|
|
// VRNDSCALEPS imm8 zmm zmm
|
|
func VRNDSCALEPS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRNDSCALEPS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VRNDSCALEPS_BCST: Round Packed Single-Precision Floating-Point Values To Include A Given Number Of Fraction Bits (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRNDSCALEPS.BCST imm8 m32 k xmm
|
|
// VRNDSCALEPS.BCST imm8 m32 k ymm
|
|
// VRNDSCALEPS.BCST imm8 m32 xmm
|
|
// VRNDSCALEPS.BCST imm8 m32 ymm
|
|
// VRNDSCALEPS.BCST imm8 m32 k zmm
|
|
// VRNDSCALEPS.BCST imm8 m32 zmm
|
|
func VRNDSCALEPS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRNDSCALEPS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VRNDSCALEPS_BCST_Z: Round Packed Single-Precision Floating-Point Values To Include A Given Number Of Fraction Bits (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRNDSCALEPS.BCST.Z imm8 m32 k xmm
|
|
// VRNDSCALEPS.BCST.Z imm8 m32 k ymm
|
|
// VRNDSCALEPS.BCST.Z imm8 m32 k zmm
|
|
func VRNDSCALEPS_BCST_Z(i, m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRNDSCALEPS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, k, xyz})
|
|
}
|
|
|
|
// VRNDSCALEPS_SAE: Round Packed Single-Precision Floating-Point Values To Include A Given Number Of Fraction Bits (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRNDSCALEPS.SAE imm8 zmm k zmm
|
|
// VRNDSCALEPS.SAE imm8 zmm zmm
|
|
func VRNDSCALEPS_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRNDSCALEPS.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VRNDSCALEPS_SAE_Z: Round Packed Single-Precision Floating-Point Values To Include A Given Number Of Fraction Bits (Suppress All Exceptions, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRNDSCALEPS.SAE.Z imm8 zmm k zmm
|
|
func VRNDSCALEPS_SAE_Z(i, z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRNDSCALEPS.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{i, z, k, z1})
|
|
}
|
|
|
|
// VRNDSCALEPS_Z: Round Packed Single-Precision Floating-Point Values To Include A Given Number Of Fraction Bits (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRNDSCALEPS.Z imm8 m128 k xmm
|
|
// VRNDSCALEPS.Z imm8 m256 k ymm
|
|
// VRNDSCALEPS.Z imm8 xmm k xmm
|
|
// VRNDSCALEPS.Z imm8 ymm k ymm
|
|
// VRNDSCALEPS.Z imm8 m512 k zmm
|
|
// VRNDSCALEPS.Z imm8 zmm k zmm
|
|
func VRNDSCALEPS_Z(i, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRNDSCALEPS.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, k, xyz})
|
|
}
|
|
|
|
// VRNDSCALESD: Round Scalar Double-Precision Floating-Point Value To Include A Given Number Of Fraction Bits.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRNDSCALESD imm8 m64 xmm k xmm
|
|
// VRNDSCALESD imm8 m64 xmm xmm
|
|
// VRNDSCALESD imm8 xmm xmm k xmm
|
|
// VRNDSCALESD imm8 xmm xmm xmm
|
|
func VRNDSCALESD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRNDSCALESD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VRNDSCALESD_SAE: Round Scalar Double-Precision Floating-Point Value To Include A Given Number Of Fraction Bits (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRNDSCALESD.SAE imm8 xmm xmm k xmm
|
|
// VRNDSCALESD.SAE imm8 xmm xmm xmm
|
|
func VRNDSCALESD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRNDSCALESD.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VRNDSCALESD_SAE_Z: Round Scalar Double-Precision Floating-Point Value To Include A Given Number Of Fraction Bits (Suppress All Exceptions, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRNDSCALESD.SAE.Z imm8 xmm xmm k xmm
|
|
func VRNDSCALESD_SAE_Z(i, x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRNDSCALESD.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{i, x, x1, k, x2})
|
|
}
|
|
|
|
// VRNDSCALESD_Z: Round Scalar Double-Precision Floating-Point Value To Include A Given Number Of Fraction Bits (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRNDSCALESD.Z imm8 m64 xmm k xmm
|
|
// VRNDSCALESD.Z imm8 xmm xmm k xmm
|
|
func VRNDSCALESD_Z(i, mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRNDSCALESD.Forms(), sffxs{sffxZ}, []operand.Op{i, mx, x, k, x1})
|
|
}
|
|
|
|
// VRNDSCALESS: Round Scalar Single-Precision Floating-Point Value To Include A Given Number Of Fraction Bits.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRNDSCALESS imm8 m32 xmm k xmm
|
|
// VRNDSCALESS imm8 m32 xmm xmm
|
|
// VRNDSCALESS imm8 xmm xmm k xmm
|
|
// VRNDSCALESS imm8 xmm xmm xmm
|
|
func VRNDSCALESS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRNDSCALESS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VRNDSCALESS_SAE: Round Scalar Single-Precision Floating-Point Value To Include A Given Number Of Fraction Bits (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRNDSCALESS.SAE imm8 xmm xmm k xmm
|
|
// VRNDSCALESS.SAE imm8 xmm xmm xmm
|
|
func VRNDSCALESS_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRNDSCALESS.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VRNDSCALESS_SAE_Z: Round Scalar Single-Precision Floating-Point Value To Include A Given Number Of Fraction Bits (Suppress All Exceptions, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRNDSCALESS.SAE.Z imm8 xmm xmm k xmm
|
|
func VRNDSCALESS_SAE_Z(i, x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRNDSCALESS.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{i, x, x1, k, x2})
|
|
}
|
|
|
|
// VRNDSCALESS_Z: Round Scalar Single-Precision Floating-Point Value To Include A Given Number Of Fraction Bits (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRNDSCALESS.Z imm8 m32 xmm k xmm
|
|
// VRNDSCALESS.Z imm8 xmm xmm k xmm
|
|
func VRNDSCALESS_Z(i, mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRNDSCALESS.Forms(), sffxs{sffxZ}, []operand.Op{i, mx, x, k, x1})
|
|
}
|
|
|
|
// VROUNDPD: Round Packed Double Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VROUNDPD imm8 m128 xmm
|
|
// VROUNDPD imm8 m256 ymm
|
|
// VROUNDPD imm8 xmm xmm
|
|
// VROUNDPD imm8 ymm ymm
|
|
func VROUNDPD(i, mxy, xy operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVROUNDPD.Forms(), sffxs{}, []operand.Op{i, mxy, xy})
|
|
}
|
|
|
|
// VROUNDPS: Round Packed Single Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VROUNDPS imm8 m128 xmm
|
|
// VROUNDPS imm8 m256 ymm
|
|
// VROUNDPS imm8 xmm xmm
|
|
// VROUNDPS imm8 ymm ymm
|
|
func VROUNDPS(i, mxy, xy operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVROUNDPS.Forms(), sffxs{}, []operand.Op{i, mxy, xy})
|
|
}
|
|
|
|
// VROUNDSD: Round Scalar Double Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VROUNDSD imm8 m64 xmm xmm
|
|
// VROUNDSD imm8 xmm xmm xmm
|
|
func VROUNDSD(i, mx, x, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVROUNDSD.Forms(), sffxs{}, []operand.Op{i, mx, x, x1})
|
|
}
|
|
|
|
// VROUNDSS: Round Scalar Single Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VROUNDSS imm8 m32 xmm xmm
|
|
// VROUNDSS imm8 xmm xmm xmm
|
|
func VROUNDSS(i, mx, x, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVROUNDSS.Forms(), sffxs{}, []operand.Op{i, mx, x, x1})
|
|
}
|
|
|
|
// VRSQRT14PD: Compute Approximate Reciprocals of Square Roots of Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRSQRT14PD m128 k xmm
|
|
// VRSQRT14PD m128 xmm
|
|
// VRSQRT14PD m256 k ymm
|
|
// VRSQRT14PD m256 ymm
|
|
// VRSQRT14PD xmm k xmm
|
|
// VRSQRT14PD xmm xmm
|
|
// VRSQRT14PD ymm k ymm
|
|
// VRSQRT14PD ymm ymm
|
|
// VRSQRT14PD m512 k zmm
|
|
// VRSQRT14PD m512 zmm
|
|
// VRSQRT14PD zmm k zmm
|
|
// VRSQRT14PD zmm zmm
|
|
func VRSQRT14PD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRSQRT14PD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VRSQRT14PD_BCST: Compute Approximate Reciprocals of Square Roots of Packed Double-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRSQRT14PD.BCST m64 k xmm
|
|
// VRSQRT14PD.BCST m64 k ymm
|
|
// VRSQRT14PD.BCST m64 xmm
|
|
// VRSQRT14PD.BCST m64 ymm
|
|
// VRSQRT14PD.BCST m64 k zmm
|
|
// VRSQRT14PD.BCST m64 zmm
|
|
func VRSQRT14PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRSQRT14PD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VRSQRT14PD_BCST_Z: Compute Approximate Reciprocals of Square Roots of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRSQRT14PD.BCST.Z m64 k xmm
|
|
// VRSQRT14PD.BCST.Z m64 k ymm
|
|
// VRSQRT14PD.BCST.Z m64 k zmm
|
|
func VRSQRT14PD_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRSQRT14PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz})
|
|
}
|
|
|
|
// VRSQRT14PD_Z: Compute Approximate Reciprocals of Square Roots of Packed Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRSQRT14PD.Z m128 k xmm
|
|
// VRSQRT14PD.Z m256 k ymm
|
|
// VRSQRT14PD.Z xmm k xmm
|
|
// VRSQRT14PD.Z ymm k ymm
|
|
// VRSQRT14PD.Z m512 k zmm
|
|
// VRSQRT14PD.Z zmm k zmm
|
|
func VRSQRT14PD_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRSQRT14PD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz})
|
|
}
|
|
|
|
// VRSQRT14PS: Compute Approximate Reciprocals of Square Roots of Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRSQRT14PS m128 k xmm
|
|
// VRSQRT14PS m128 xmm
|
|
// VRSQRT14PS m256 k ymm
|
|
// VRSQRT14PS m256 ymm
|
|
// VRSQRT14PS xmm k xmm
|
|
// VRSQRT14PS xmm xmm
|
|
// VRSQRT14PS ymm k ymm
|
|
// VRSQRT14PS ymm ymm
|
|
// VRSQRT14PS m512 k zmm
|
|
// VRSQRT14PS m512 zmm
|
|
// VRSQRT14PS zmm k zmm
|
|
// VRSQRT14PS zmm zmm
|
|
func VRSQRT14PS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRSQRT14PS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VRSQRT14PS_BCST: Compute Approximate Reciprocals of Square Roots of Packed Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRSQRT14PS.BCST m32 k xmm
|
|
// VRSQRT14PS.BCST m32 k ymm
|
|
// VRSQRT14PS.BCST m32 xmm
|
|
// VRSQRT14PS.BCST m32 ymm
|
|
// VRSQRT14PS.BCST m32 k zmm
|
|
// VRSQRT14PS.BCST m32 zmm
|
|
func VRSQRT14PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRSQRT14PS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VRSQRT14PS_BCST_Z: Compute Approximate Reciprocals of Square Roots of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRSQRT14PS.BCST.Z m32 k xmm
|
|
// VRSQRT14PS.BCST.Z m32 k ymm
|
|
// VRSQRT14PS.BCST.Z m32 k zmm
|
|
func VRSQRT14PS_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRSQRT14PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz})
|
|
}
|
|
|
|
// VRSQRT14PS_Z: Compute Approximate Reciprocals of Square Roots of Packed Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRSQRT14PS.Z m128 k xmm
|
|
// VRSQRT14PS.Z m256 k ymm
|
|
// VRSQRT14PS.Z xmm k xmm
|
|
// VRSQRT14PS.Z ymm k ymm
|
|
// VRSQRT14PS.Z m512 k zmm
|
|
// VRSQRT14PS.Z zmm k zmm
|
|
func VRSQRT14PS_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRSQRT14PS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz})
|
|
}
|
|
|
|
// VRSQRT14SD: Compute Approximate Reciprocal of a Square Root of a Scalar Double-Precision Floating-Point Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRSQRT14SD m64 xmm k xmm
|
|
// VRSQRT14SD m64 xmm xmm
|
|
// VRSQRT14SD xmm xmm k xmm
|
|
// VRSQRT14SD xmm xmm xmm
|
|
func VRSQRT14SD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRSQRT14SD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VRSQRT14SD_Z: Compute Approximate Reciprocal of a Square Root of a Scalar Double-Precision Floating-Point Value (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRSQRT14SD.Z m64 xmm k xmm
|
|
// VRSQRT14SD.Z xmm xmm k xmm
|
|
func VRSQRT14SD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRSQRT14SD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VRSQRT14SS: Compute Approximate Reciprocal of a Square Root of a Scalar Single-Precision Floating-Point Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRSQRT14SS m32 xmm k xmm
|
|
// VRSQRT14SS m32 xmm xmm
|
|
// VRSQRT14SS xmm xmm k xmm
|
|
// VRSQRT14SS xmm xmm xmm
|
|
func VRSQRT14SS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRSQRT14SS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VRSQRT14SS_Z: Compute Approximate Reciprocal of a Square Root of a Scalar Single-Precision Floating-Point Value (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRSQRT14SS.Z m32 xmm k xmm
|
|
// VRSQRT14SS.Z xmm xmm k xmm
|
|
func VRSQRT14SS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRSQRT14SS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VRSQRT28PD: Approximation to the Reciprocal Square Root of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRSQRT28PD m512 k zmm
|
|
// VRSQRT28PD m512 zmm
|
|
// VRSQRT28PD zmm k zmm
|
|
// VRSQRT28PD zmm zmm
|
|
func VRSQRT28PD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRSQRT28PD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VRSQRT28PD_BCST: Approximation to the Reciprocal Square Root of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRSQRT28PD.BCST m64 k zmm
|
|
// VRSQRT28PD.BCST m64 zmm
|
|
func VRSQRT28PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRSQRT28PD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VRSQRT28PD_BCST_Z: Approximation to the Reciprocal Square Root of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRSQRT28PD.BCST.Z m64 k zmm
|
|
func VRSQRT28PD_BCST_Z(m, k, z operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRSQRT28PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, z})
|
|
}
|
|
|
|
// VRSQRT28PD_SAE: Approximation to the Reciprocal Square Root of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRSQRT28PD.SAE zmm k zmm
|
|
// VRSQRT28PD.SAE zmm zmm
|
|
func VRSQRT28PD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRSQRT28PD.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VRSQRT28PD_SAE_Z: Approximation to the Reciprocal Square Root of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Suppress All Exceptions, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRSQRT28PD.SAE.Z zmm k zmm
|
|
func VRSQRT28PD_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRSQRT28PD.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VRSQRT28PD_Z: Approximation to the Reciprocal Square Root of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRSQRT28PD.Z m512 k zmm
|
|
// VRSQRT28PD.Z zmm k zmm
|
|
func VRSQRT28PD_Z(mz, k, z operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRSQRT28PD.Forms(), sffxs{sffxZ}, []operand.Op{mz, k, z})
|
|
}
|
|
|
|
// VRSQRT28PS: Approximation to the Reciprocal Square Root of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRSQRT28PS m512 k zmm
|
|
// VRSQRT28PS m512 zmm
|
|
// VRSQRT28PS zmm k zmm
|
|
// VRSQRT28PS zmm zmm
|
|
func VRSQRT28PS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRSQRT28PS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VRSQRT28PS_BCST: Approximation to the Reciprocal Square Root of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRSQRT28PS.BCST m32 k zmm
|
|
// VRSQRT28PS.BCST m32 zmm
|
|
func VRSQRT28PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRSQRT28PS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VRSQRT28PS_BCST_Z: Approximation to the Reciprocal Square Root of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRSQRT28PS.BCST.Z m32 k zmm
|
|
func VRSQRT28PS_BCST_Z(m, k, z operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRSQRT28PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, z})
|
|
}
|
|
|
|
// VRSQRT28PS_SAE: Approximation to the Reciprocal Square Root of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRSQRT28PS.SAE zmm k zmm
|
|
// VRSQRT28PS.SAE zmm zmm
|
|
func VRSQRT28PS_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRSQRT28PS.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VRSQRT28PS_SAE_Z: Approximation to the Reciprocal Square Root of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Suppress All Exceptions, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRSQRT28PS.SAE.Z zmm k zmm
|
|
func VRSQRT28PS_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRSQRT28PS.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VRSQRT28PS_Z: Approximation to the Reciprocal Square Root of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRSQRT28PS.Z m512 k zmm
|
|
// VRSQRT28PS.Z zmm k zmm
|
|
func VRSQRT28PS_Z(mz, k, z operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRSQRT28PS.Forms(), sffxs{sffxZ}, []operand.Op{mz, k, z})
|
|
}
|
|
|
|
// VRSQRT28SD: Approximation to the Reciprocal Square Root of a Scalar Double-Precision Floating-Point Value with Less Than 2^-28 Relative Error.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRSQRT28SD m64 xmm k xmm
|
|
// VRSQRT28SD m64 xmm xmm
|
|
// VRSQRT28SD xmm xmm k xmm
|
|
// VRSQRT28SD xmm xmm xmm
|
|
func VRSQRT28SD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRSQRT28SD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VRSQRT28SD_SAE: Approximation to the Reciprocal Square Root of a Scalar Double-Precision Floating-Point Value with Less Than 2^-28 Relative Error (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRSQRT28SD.SAE xmm xmm k xmm
|
|
// VRSQRT28SD.SAE xmm xmm xmm
|
|
func VRSQRT28SD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRSQRT28SD.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VRSQRT28SD_SAE_Z: Approximation to the Reciprocal Square Root of a Scalar Double-Precision Floating-Point Value with Less Than 2^-28 Relative Error (Suppress All Exceptions, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRSQRT28SD.SAE.Z xmm xmm k xmm
|
|
func VRSQRT28SD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRSQRT28SD.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VRSQRT28SD_Z: Approximation to the Reciprocal Square Root of a Scalar Double-Precision Floating-Point Value with Less Than 2^-28 Relative Error (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRSQRT28SD.Z m64 xmm k xmm
|
|
// VRSQRT28SD.Z xmm xmm k xmm
|
|
func VRSQRT28SD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRSQRT28SD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VRSQRT28SS: Approximation to the Reciprocal Square Root of a Scalar Single-Precision Floating-Point Value with Less Than 2^-28 Relative Error.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRSQRT28SS m32 xmm k xmm
|
|
// VRSQRT28SS m32 xmm xmm
|
|
// VRSQRT28SS xmm xmm k xmm
|
|
// VRSQRT28SS xmm xmm xmm
|
|
func VRSQRT28SS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRSQRT28SS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VRSQRT28SS_SAE: Approximation to the Reciprocal Square Root of a Scalar Single-Precision Floating-Point Value with Less Than 2^-28 Relative Error (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRSQRT28SS.SAE xmm xmm k xmm
|
|
// VRSQRT28SS.SAE xmm xmm xmm
|
|
func VRSQRT28SS_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRSQRT28SS.Forms(), sffxs{sffxSAE}, ops)
|
|
}
|
|
|
|
// VRSQRT28SS_SAE_Z: Approximation to the Reciprocal Square Root of a Scalar Single-Precision Floating-Point Value with Less Than 2^-28 Relative Error (Suppress All Exceptions, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRSQRT28SS.SAE.Z xmm xmm k xmm
|
|
func VRSQRT28SS_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRSQRT28SS.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VRSQRT28SS_Z: Approximation to the Reciprocal Square Root of a Scalar Single-Precision Floating-Point Value with Less Than 2^-28 Relative Error (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRSQRT28SS.Z m32 xmm k xmm
|
|
// VRSQRT28SS.Z xmm xmm k xmm
|
|
func VRSQRT28SS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRSQRT28SS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VRSQRTPS: Compute Reciprocals of Square Roots of Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRSQRTPS m128 xmm
|
|
// VRSQRTPS m256 ymm
|
|
// VRSQRTPS xmm xmm
|
|
// VRSQRTPS ymm ymm
|
|
func VRSQRTPS(mxy, xy operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRSQRTPS.Forms(), sffxs{}, []operand.Op{mxy, xy})
|
|
}
|
|
|
|
// VRSQRTSS: Compute Reciprocal of Square Root of Scalar Single-Precision Floating-Point Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VRSQRTSS m32 xmm xmm
|
|
// VRSQRTSS xmm xmm xmm
|
|
func VRSQRTSS(mx, x, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVRSQRTSS.Forms(), sffxs{}, []operand.Op{mx, x, x1})
|
|
}
|
|
|
|
// VSCALEFPD: Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSCALEFPD m128 xmm k xmm
|
|
// VSCALEFPD m128 xmm xmm
|
|
// VSCALEFPD m256 ymm k ymm
|
|
// VSCALEFPD m256 ymm ymm
|
|
// VSCALEFPD xmm xmm k xmm
|
|
// VSCALEFPD xmm xmm xmm
|
|
// VSCALEFPD ymm ymm k ymm
|
|
// VSCALEFPD ymm ymm ymm
|
|
// VSCALEFPD m512 zmm k zmm
|
|
// VSCALEFPD m512 zmm zmm
|
|
// VSCALEFPD zmm zmm k zmm
|
|
// VSCALEFPD zmm zmm zmm
|
|
func VSCALEFPD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSCALEFPD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VSCALEFPD_BCST: Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSCALEFPD.BCST m64 xmm k xmm
|
|
// VSCALEFPD.BCST m64 xmm xmm
|
|
// VSCALEFPD.BCST m64 ymm k ymm
|
|
// VSCALEFPD.BCST m64 ymm ymm
|
|
// VSCALEFPD.BCST m64 zmm k zmm
|
|
// VSCALEFPD.BCST m64 zmm zmm
|
|
func VSCALEFPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSCALEFPD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VSCALEFPD_BCST_Z: Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSCALEFPD.BCST.Z m64 xmm k xmm
|
|
// VSCALEFPD.BCST.Z m64 ymm k ymm
|
|
// VSCALEFPD.BCST.Z m64 zmm k zmm
|
|
func VSCALEFPD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSCALEFPD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VSCALEFPD_RD_SAE: Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSCALEFPD.RD_SAE zmm zmm k zmm
|
|
// VSCALEFPD.RD_SAE zmm zmm zmm
|
|
func VSCALEFPD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSCALEFPD.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VSCALEFPD_RD_SAE_Z: Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSCALEFPD.RD_SAE.Z zmm zmm k zmm
|
|
func VSCALEFPD_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSCALEFPD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VSCALEFPD_RN_SAE: Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSCALEFPD.RN_SAE zmm zmm k zmm
|
|
// VSCALEFPD.RN_SAE zmm zmm zmm
|
|
func VSCALEFPD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSCALEFPD.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VSCALEFPD_RN_SAE_Z: Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSCALEFPD.RN_SAE.Z zmm zmm k zmm
|
|
func VSCALEFPD_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSCALEFPD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VSCALEFPD_RU_SAE: Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSCALEFPD.RU_SAE zmm zmm k zmm
|
|
// VSCALEFPD.RU_SAE zmm zmm zmm
|
|
func VSCALEFPD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSCALEFPD.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VSCALEFPD_RU_SAE_Z: Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSCALEFPD.RU_SAE.Z zmm zmm k zmm
|
|
func VSCALEFPD_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSCALEFPD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VSCALEFPD_RZ_SAE: Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSCALEFPD.RZ_SAE zmm zmm k zmm
|
|
// VSCALEFPD.RZ_SAE zmm zmm zmm
|
|
func VSCALEFPD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSCALEFPD.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VSCALEFPD_RZ_SAE_Z: Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSCALEFPD.RZ_SAE.Z zmm zmm k zmm
|
|
func VSCALEFPD_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSCALEFPD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VSCALEFPD_Z: Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSCALEFPD.Z m128 xmm k xmm
|
|
// VSCALEFPD.Z m256 ymm k ymm
|
|
// VSCALEFPD.Z xmm xmm k xmm
|
|
// VSCALEFPD.Z ymm ymm k ymm
|
|
// VSCALEFPD.Z m512 zmm k zmm
|
|
// VSCALEFPD.Z zmm zmm k zmm
|
|
func VSCALEFPD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSCALEFPD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VSCALEFPS: Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSCALEFPS m128 xmm k xmm
|
|
// VSCALEFPS m128 xmm xmm
|
|
// VSCALEFPS m256 ymm k ymm
|
|
// VSCALEFPS m256 ymm ymm
|
|
// VSCALEFPS xmm xmm k xmm
|
|
// VSCALEFPS xmm xmm xmm
|
|
// VSCALEFPS ymm ymm k ymm
|
|
// VSCALEFPS ymm ymm ymm
|
|
// VSCALEFPS m512 zmm k zmm
|
|
// VSCALEFPS m512 zmm zmm
|
|
// VSCALEFPS zmm zmm k zmm
|
|
// VSCALEFPS zmm zmm zmm
|
|
func VSCALEFPS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSCALEFPS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VSCALEFPS_BCST: Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSCALEFPS.BCST m32 xmm k xmm
|
|
// VSCALEFPS.BCST m32 xmm xmm
|
|
// VSCALEFPS.BCST m32 ymm k ymm
|
|
// VSCALEFPS.BCST m32 ymm ymm
|
|
// VSCALEFPS.BCST m32 zmm k zmm
|
|
// VSCALEFPS.BCST m32 zmm zmm
|
|
func VSCALEFPS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSCALEFPS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VSCALEFPS_BCST_Z: Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSCALEFPS.BCST.Z m32 xmm k xmm
|
|
// VSCALEFPS.BCST.Z m32 ymm k ymm
|
|
// VSCALEFPS.BCST.Z m32 zmm k zmm
|
|
func VSCALEFPS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSCALEFPS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VSCALEFPS_RD_SAE: Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSCALEFPS.RD_SAE zmm zmm k zmm
|
|
// VSCALEFPS.RD_SAE zmm zmm zmm
|
|
func VSCALEFPS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSCALEFPS.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VSCALEFPS_RD_SAE_Z: Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSCALEFPS.RD_SAE.Z zmm zmm k zmm
|
|
func VSCALEFPS_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSCALEFPS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VSCALEFPS_RN_SAE: Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSCALEFPS.RN_SAE zmm zmm k zmm
|
|
// VSCALEFPS.RN_SAE zmm zmm zmm
|
|
func VSCALEFPS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSCALEFPS.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VSCALEFPS_RN_SAE_Z: Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSCALEFPS.RN_SAE.Z zmm zmm k zmm
|
|
func VSCALEFPS_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSCALEFPS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VSCALEFPS_RU_SAE: Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSCALEFPS.RU_SAE zmm zmm k zmm
|
|
// VSCALEFPS.RU_SAE zmm zmm zmm
|
|
func VSCALEFPS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSCALEFPS.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VSCALEFPS_RU_SAE_Z: Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSCALEFPS.RU_SAE.Z zmm zmm k zmm
|
|
func VSCALEFPS_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSCALEFPS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VSCALEFPS_RZ_SAE: Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSCALEFPS.RZ_SAE zmm zmm k zmm
|
|
// VSCALEFPS.RZ_SAE zmm zmm zmm
|
|
func VSCALEFPS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSCALEFPS.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VSCALEFPS_RZ_SAE_Z: Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSCALEFPS.RZ_SAE.Z zmm zmm k zmm
|
|
func VSCALEFPS_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSCALEFPS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VSCALEFPS_Z: Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSCALEFPS.Z m128 xmm k xmm
|
|
// VSCALEFPS.Z m256 ymm k ymm
|
|
// VSCALEFPS.Z xmm xmm k xmm
|
|
// VSCALEFPS.Z ymm ymm k ymm
|
|
// VSCALEFPS.Z m512 zmm k zmm
|
|
// VSCALEFPS.Z zmm zmm k zmm
|
|
func VSCALEFPS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSCALEFPS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VSCALEFSD: Scale Scalar Double-Precision Floating-Point Value With a Double-Precision Floating-Point Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSCALEFSD m64 xmm k xmm
|
|
// VSCALEFSD m64 xmm xmm
|
|
// VSCALEFSD xmm xmm k xmm
|
|
// VSCALEFSD xmm xmm xmm
|
|
func VSCALEFSD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSCALEFSD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VSCALEFSD_RD_SAE: Scale Scalar Double-Precision Floating-Point Value With a Double-Precision Floating-Point Value (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSCALEFSD.RD_SAE xmm xmm k xmm
|
|
// VSCALEFSD.RD_SAE xmm xmm xmm
|
|
func VSCALEFSD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSCALEFSD.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VSCALEFSD_RD_SAE_Z: Scale Scalar Double-Precision Floating-Point Value With a Double-Precision Floating-Point Value (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSCALEFSD.RD_SAE.Z xmm xmm k xmm
|
|
func VSCALEFSD_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSCALEFSD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VSCALEFSD_RN_SAE: Scale Scalar Double-Precision Floating-Point Value With a Double-Precision Floating-Point Value (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSCALEFSD.RN_SAE xmm xmm k xmm
|
|
// VSCALEFSD.RN_SAE xmm xmm xmm
|
|
func VSCALEFSD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSCALEFSD.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VSCALEFSD_RN_SAE_Z: Scale Scalar Double-Precision Floating-Point Value With a Double-Precision Floating-Point Value (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSCALEFSD.RN_SAE.Z xmm xmm k xmm
|
|
func VSCALEFSD_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSCALEFSD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VSCALEFSD_RU_SAE: Scale Scalar Double-Precision Floating-Point Value With a Double-Precision Floating-Point Value (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSCALEFSD.RU_SAE xmm xmm k xmm
|
|
// VSCALEFSD.RU_SAE xmm xmm xmm
|
|
func VSCALEFSD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSCALEFSD.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VSCALEFSD_RU_SAE_Z: Scale Scalar Double-Precision Floating-Point Value With a Double-Precision Floating-Point Value (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSCALEFSD.RU_SAE.Z xmm xmm k xmm
|
|
func VSCALEFSD_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSCALEFSD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VSCALEFSD_RZ_SAE: Scale Scalar Double-Precision Floating-Point Value With a Double-Precision Floating-Point Value (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSCALEFSD.RZ_SAE xmm xmm k xmm
|
|
// VSCALEFSD.RZ_SAE xmm xmm xmm
|
|
func VSCALEFSD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSCALEFSD.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VSCALEFSD_RZ_SAE_Z: Scale Scalar Double-Precision Floating-Point Value With a Double-Precision Floating-Point Value (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSCALEFSD.RZ_SAE.Z xmm xmm k xmm
|
|
func VSCALEFSD_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSCALEFSD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VSCALEFSD_Z: Scale Scalar Double-Precision Floating-Point Value With a Double-Precision Floating-Point Value (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSCALEFSD.Z m64 xmm k xmm
|
|
// VSCALEFSD.Z xmm xmm k xmm
|
|
func VSCALEFSD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSCALEFSD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VSCALEFSS: Scale Scalar Single-Precision Floating-Point Value With a Single-Precision Floating-Point Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSCALEFSS m32 xmm k xmm
|
|
// VSCALEFSS m32 xmm xmm
|
|
// VSCALEFSS xmm xmm k xmm
|
|
// VSCALEFSS xmm xmm xmm
|
|
func VSCALEFSS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSCALEFSS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VSCALEFSS_RD_SAE: Scale Scalar Single-Precision Floating-Point Value With a Single-Precision Floating-Point Value (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSCALEFSS.RD_SAE xmm xmm k xmm
|
|
// VSCALEFSS.RD_SAE xmm xmm xmm
|
|
func VSCALEFSS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSCALEFSS.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VSCALEFSS_RD_SAE_Z: Scale Scalar Single-Precision Floating-Point Value With a Single-Precision Floating-Point Value (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSCALEFSS.RD_SAE.Z xmm xmm k xmm
|
|
func VSCALEFSS_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSCALEFSS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VSCALEFSS_RN_SAE: Scale Scalar Single-Precision Floating-Point Value With a Single-Precision Floating-Point Value (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSCALEFSS.RN_SAE xmm xmm k xmm
|
|
// VSCALEFSS.RN_SAE xmm xmm xmm
|
|
func VSCALEFSS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSCALEFSS.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VSCALEFSS_RN_SAE_Z: Scale Scalar Single-Precision Floating-Point Value With a Single-Precision Floating-Point Value (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSCALEFSS.RN_SAE.Z xmm xmm k xmm
|
|
func VSCALEFSS_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSCALEFSS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VSCALEFSS_RU_SAE: Scale Scalar Single-Precision Floating-Point Value With a Single-Precision Floating-Point Value (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSCALEFSS.RU_SAE xmm xmm k xmm
|
|
// VSCALEFSS.RU_SAE xmm xmm xmm
|
|
func VSCALEFSS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSCALEFSS.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VSCALEFSS_RU_SAE_Z: Scale Scalar Single-Precision Floating-Point Value With a Single-Precision Floating-Point Value (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSCALEFSS.RU_SAE.Z xmm xmm k xmm
|
|
func VSCALEFSS_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSCALEFSS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VSCALEFSS_RZ_SAE: Scale Scalar Single-Precision Floating-Point Value With a Single-Precision Floating-Point Value (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSCALEFSS.RZ_SAE xmm xmm k xmm
|
|
// VSCALEFSS.RZ_SAE xmm xmm xmm
|
|
func VSCALEFSS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSCALEFSS.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VSCALEFSS_RZ_SAE_Z: Scale Scalar Single-Precision Floating-Point Value With a Single-Precision Floating-Point Value (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSCALEFSS.RZ_SAE.Z xmm xmm k xmm
|
|
func VSCALEFSS_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSCALEFSS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VSCALEFSS_Z: Scale Scalar Single-Precision Floating-Point Value With a Single-Precision Floating-Point Value (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSCALEFSS.Z m32 xmm k xmm
|
|
// VSCALEFSS.Z xmm xmm k xmm
|
|
func VSCALEFSS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSCALEFSS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VSCATTERDPD: Scatter Packed Double-Precision Floating-Point Values with Signed Doubleword Indices.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSCATTERDPD xmm k vm32x
|
|
// VSCATTERDPD ymm k vm32x
|
|
// VSCATTERDPD zmm k vm32y
|
|
func VSCATTERDPD(xyz, k, v operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSCATTERDPD.Forms(), sffxs{}, []operand.Op{xyz, k, v})
|
|
}
|
|
|
|
// VSCATTERDPS: Scatter Packed Single-Precision Floating-Point Values with Signed Doubleword Indices.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSCATTERDPS xmm k vm32x
|
|
// VSCATTERDPS ymm k vm32y
|
|
// VSCATTERDPS zmm k vm32z
|
|
func VSCATTERDPS(xyz, k, v operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSCATTERDPS.Forms(), sffxs{}, []operand.Op{xyz, k, v})
|
|
}
|
|
|
|
// VSCATTERQPD: Scatter Packed Double-Precision Floating-Point Values with Signed Quadword Indices.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSCATTERQPD xmm k vm64x
|
|
// VSCATTERQPD ymm k vm64y
|
|
// VSCATTERQPD zmm k vm64z
|
|
func VSCATTERQPD(xyz, k, v operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSCATTERQPD.Forms(), sffxs{}, []operand.Op{xyz, k, v})
|
|
}
|
|
|
|
// VSCATTERQPS: Scatter Packed Single-Precision Floating-Point Values with Signed Quadword Indices.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSCATTERQPS xmm k vm64x
|
|
// VSCATTERQPS xmm k vm64y
|
|
// VSCATTERQPS ymm k vm64z
|
|
func VSCATTERQPS(xy, k, v operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSCATTERQPS.Forms(), sffxs{}, []operand.Op{xy, k, v})
|
|
}
|
|
|
|
// VSHUFF32X4: Shuffle 128-Bit Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSHUFF32X4 imm8 m256 ymm k ymm
|
|
// VSHUFF32X4 imm8 m256 ymm ymm
|
|
// VSHUFF32X4 imm8 ymm ymm k ymm
|
|
// VSHUFF32X4 imm8 ymm ymm ymm
|
|
// VSHUFF32X4 imm8 m512 zmm k zmm
|
|
// VSHUFF32X4 imm8 m512 zmm zmm
|
|
// VSHUFF32X4 imm8 zmm zmm k zmm
|
|
// VSHUFF32X4 imm8 zmm zmm zmm
|
|
func VSHUFF32X4(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSHUFF32X4.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VSHUFF32X4_BCST: Shuffle 128-Bit Packed Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSHUFF32X4.BCST imm8 m32 ymm k ymm
|
|
// VSHUFF32X4.BCST imm8 m32 ymm ymm
|
|
// VSHUFF32X4.BCST imm8 m32 zmm k zmm
|
|
// VSHUFF32X4.BCST imm8 m32 zmm zmm
|
|
func VSHUFF32X4_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSHUFF32X4.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VSHUFF32X4_BCST_Z: Shuffle 128-Bit Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSHUFF32X4.BCST.Z imm8 m32 ymm k ymm
|
|
// VSHUFF32X4.BCST.Z imm8 m32 zmm k zmm
|
|
func VSHUFF32X4_BCST_Z(i, m, yz, k, yz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSHUFF32X4.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, yz, k, yz1})
|
|
}
|
|
|
|
// VSHUFF32X4_Z: Shuffle 128-Bit Packed Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSHUFF32X4.Z imm8 m256 ymm k ymm
|
|
// VSHUFF32X4.Z imm8 ymm ymm k ymm
|
|
// VSHUFF32X4.Z imm8 m512 zmm k zmm
|
|
// VSHUFF32X4.Z imm8 zmm zmm k zmm
|
|
func VSHUFF32X4_Z(i, myz, yz, k, yz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSHUFF32X4.Forms(), sffxs{sffxZ}, []operand.Op{i, myz, yz, k, yz1})
|
|
}
|
|
|
|
// VSHUFF64X2: Shuffle 128-Bit Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSHUFF64X2 imm8 m256 ymm k ymm
|
|
// VSHUFF64X2 imm8 m256 ymm ymm
|
|
// VSHUFF64X2 imm8 ymm ymm k ymm
|
|
// VSHUFF64X2 imm8 ymm ymm ymm
|
|
// VSHUFF64X2 imm8 m512 zmm k zmm
|
|
// VSHUFF64X2 imm8 m512 zmm zmm
|
|
// VSHUFF64X2 imm8 zmm zmm k zmm
|
|
// VSHUFF64X2 imm8 zmm zmm zmm
|
|
func VSHUFF64X2(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSHUFF64X2.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VSHUFF64X2_BCST: Shuffle 128-Bit Packed Double-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSHUFF64X2.BCST imm8 m64 ymm k ymm
|
|
// VSHUFF64X2.BCST imm8 m64 ymm ymm
|
|
// VSHUFF64X2.BCST imm8 m64 zmm k zmm
|
|
// VSHUFF64X2.BCST imm8 m64 zmm zmm
|
|
func VSHUFF64X2_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSHUFF64X2.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VSHUFF64X2_BCST_Z: Shuffle 128-Bit Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSHUFF64X2.BCST.Z imm8 m64 ymm k ymm
|
|
// VSHUFF64X2.BCST.Z imm8 m64 zmm k zmm
|
|
func VSHUFF64X2_BCST_Z(i, m, yz, k, yz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSHUFF64X2.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, yz, k, yz1})
|
|
}
|
|
|
|
// VSHUFF64X2_Z: Shuffle 128-Bit Packed Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSHUFF64X2.Z imm8 m256 ymm k ymm
|
|
// VSHUFF64X2.Z imm8 ymm ymm k ymm
|
|
// VSHUFF64X2.Z imm8 m512 zmm k zmm
|
|
// VSHUFF64X2.Z imm8 zmm zmm k zmm
|
|
func VSHUFF64X2_Z(i, myz, yz, k, yz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSHUFF64X2.Forms(), sffxs{sffxZ}, []operand.Op{i, myz, yz, k, yz1})
|
|
}
|
|
|
|
// VSHUFI32X4: Shuffle 128-Bit Packed Doubleword Integer Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSHUFI32X4 imm8 m256 ymm k ymm
|
|
// VSHUFI32X4 imm8 m256 ymm ymm
|
|
// VSHUFI32X4 imm8 ymm ymm k ymm
|
|
// VSHUFI32X4 imm8 ymm ymm ymm
|
|
// VSHUFI32X4 imm8 m512 zmm k zmm
|
|
// VSHUFI32X4 imm8 m512 zmm zmm
|
|
// VSHUFI32X4 imm8 zmm zmm k zmm
|
|
// VSHUFI32X4 imm8 zmm zmm zmm
|
|
func VSHUFI32X4(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSHUFI32X4.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VSHUFI32X4_BCST: Shuffle 128-Bit Packed Doubleword Integer Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSHUFI32X4.BCST imm8 m32 ymm k ymm
|
|
// VSHUFI32X4.BCST imm8 m32 ymm ymm
|
|
// VSHUFI32X4.BCST imm8 m32 zmm k zmm
|
|
// VSHUFI32X4.BCST imm8 m32 zmm zmm
|
|
func VSHUFI32X4_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSHUFI32X4.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VSHUFI32X4_BCST_Z: Shuffle 128-Bit Packed Doubleword Integer Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSHUFI32X4.BCST.Z imm8 m32 ymm k ymm
|
|
// VSHUFI32X4.BCST.Z imm8 m32 zmm k zmm
|
|
func VSHUFI32X4_BCST_Z(i, m, yz, k, yz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSHUFI32X4.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, yz, k, yz1})
|
|
}
|
|
|
|
// VSHUFI32X4_Z: Shuffle 128-Bit Packed Doubleword Integer Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSHUFI32X4.Z imm8 m256 ymm k ymm
|
|
// VSHUFI32X4.Z imm8 ymm ymm k ymm
|
|
// VSHUFI32X4.Z imm8 m512 zmm k zmm
|
|
// VSHUFI32X4.Z imm8 zmm zmm k zmm
|
|
func VSHUFI32X4_Z(i, myz, yz, k, yz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSHUFI32X4.Forms(), sffxs{sffxZ}, []operand.Op{i, myz, yz, k, yz1})
|
|
}
|
|
|
|
// VSHUFI64X2: Shuffle 128-Bit Packed Quadword Integer Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSHUFI64X2 imm8 m256 ymm k ymm
|
|
// VSHUFI64X2 imm8 m256 ymm ymm
|
|
// VSHUFI64X2 imm8 ymm ymm k ymm
|
|
// VSHUFI64X2 imm8 ymm ymm ymm
|
|
// VSHUFI64X2 imm8 m512 zmm k zmm
|
|
// VSHUFI64X2 imm8 m512 zmm zmm
|
|
// VSHUFI64X2 imm8 zmm zmm k zmm
|
|
// VSHUFI64X2 imm8 zmm zmm zmm
|
|
func VSHUFI64X2(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSHUFI64X2.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VSHUFI64X2_BCST: Shuffle 128-Bit Packed Quadword Integer Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSHUFI64X2.BCST imm8 m64 ymm k ymm
|
|
// VSHUFI64X2.BCST imm8 m64 ymm ymm
|
|
// VSHUFI64X2.BCST imm8 m64 zmm k zmm
|
|
// VSHUFI64X2.BCST imm8 m64 zmm zmm
|
|
func VSHUFI64X2_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSHUFI64X2.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VSHUFI64X2_BCST_Z: Shuffle 128-Bit Packed Quadword Integer Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSHUFI64X2.BCST.Z imm8 m64 ymm k ymm
|
|
// VSHUFI64X2.BCST.Z imm8 m64 zmm k zmm
|
|
func VSHUFI64X2_BCST_Z(i, m, yz, k, yz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSHUFI64X2.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, yz, k, yz1})
|
|
}
|
|
|
|
// VSHUFI64X2_Z: Shuffle 128-Bit Packed Quadword Integer Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSHUFI64X2.Z imm8 m256 ymm k ymm
|
|
// VSHUFI64X2.Z imm8 ymm ymm k ymm
|
|
// VSHUFI64X2.Z imm8 m512 zmm k zmm
|
|
// VSHUFI64X2.Z imm8 zmm zmm k zmm
|
|
func VSHUFI64X2_Z(i, myz, yz, k, yz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSHUFI64X2.Forms(), sffxs{sffxZ}, []operand.Op{i, myz, yz, k, yz1})
|
|
}
|
|
|
|
// VSHUFPD: Shuffle Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSHUFPD imm8 m128 xmm xmm
|
|
// VSHUFPD imm8 m256 ymm ymm
|
|
// VSHUFPD imm8 xmm xmm xmm
|
|
// VSHUFPD imm8 ymm ymm ymm
|
|
// VSHUFPD imm8 m128 xmm k xmm
|
|
// VSHUFPD imm8 m256 ymm k ymm
|
|
// VSHUFPD imm8 xmm xmm k xmm
|
|
// VSHUFPD imm8 ymm ymm k ymm
|
|
// VSHUFPD imm8 m512 zmm k zmm
|
|
// VSHUFPD imm8 m512 zmm zmm
|
|
// VSHUFPD imm8 zmm zmm k zmm
|
|
// VSHUFPD imm8 zmm zmm zmm
|
|
func VSHUFPD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSHUFPD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VSHUFPD_BCST: Shuffle Packed Double-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSHUFPD.BCST imm8 m64 xmm k xmm
|
|
// VSHUFPD.BCST imm8 m64 xmm xmm
|
|
// VSHUFPD.BCST imm8 m64 ymm k ymm
|
|
// VSHUFPD.BCST imm8 m64 ymm ymm
|
|
// VSHUFPD.BCST imm8 m64 zmm k zmm
|
|
// VSHUFPD.BCST imm8 m64 zmm zmm
|
|
func VSHUFPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSHUFPD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VSHUFPD_BCST_Z: Shuffle Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSHUFPD.BCST.Z imm8 m64 xmm k xmm
|
|
// VSHUFPD.BCST.Z imm8 m64 ymm k ymm
|
|
// VSHUFPD.BCST.Z imm8 m64 zmm k zmm
|
|
func VSHUFPD_BCST_Z(i, m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSHUFPD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VSHUFPD_Z: Shuffle Packed Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSHUFPD.Z imm8 m128 xmm k xmm
|
|
// VSHUFPD.Z imm8 m256 ymm k ymm
|
|
// VSHUFPD.Z imm8 xmm xmm k xmm
|
|
// VSHUFPD.Z imm8 ymm ymm k ymm
|
|
// VSHUFPD.Z imm8 m512 zmm k zmm
|
|
// VSHUFPD.Z imm8 zmm zmm k zmm
|
|
func VSHUFPD_Z(i, mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSHUFPD.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VSHUFPS: Shuffle Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSHUFPS imm8 m128 xmm xmm
|
|
// VSHUFPS imm8 m256 ymm ymm
|
|
// VSHUFPS imm8 xmm xmm xmm
|
|
// VSHUFPS imm8 ymm ymm ymm
|
|
// VSHUFPS imm8 m128 xmm k xmm
|
|
// VSHUFPS imm8 m256 ymm k ymm
|
|
// VSHUFPS imm8 xmm xmm k xmm
|
|
// VSHUFPS imm8 ymm ymm k ymm
|
|
// VSHUFPS imm8 m512 zmm k zmm
|
|
// VSHUFPS imm8 m512 zmm zmm
|
|
// VSHUFPS imm8 zmm zmm k zmm
|
|
// VSHUFPS imm8 zmm zmm zmm
|
|
func VSHUFPS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSHUFPS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VSHUFPS_BCST: Shuffle Packed Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSHUFPS.BCST imm8 m32 xmm k xmm
|
|
// VSHUFPS.BCST imm8 m32 xmm xmm
|
|
// VSHUFPS.BCST imm8 m32 ymm k ymm
|
|
// VSHUFPS.BCST imm8 m32 ymm ymm
|
|
// VSHUFPS.BCST imm8 m32 zmm k zmm
|
|
// VSHUFPS.BCST imm8 m32 zmm zmm
|
|
func VSHUFPS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSHUFPS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VSHUFPS_BCST_Z: Shuffle Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSHUFPS.BCST.Z imm8 m32 xmm k xmm
|
|
// VSHUFPS.BCST.Z imm8 m32 ymm k ymm
|
|
// VSHUFPS.BCST.Z imm8 m32 zmm k zmm
|
|
func VSHUFPS_BCST_Z(i, m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSHUFPS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VSHUFPS_Z: Shuffle Packed Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSHUFPS.Z imm8 m128 xmm k xmm
|
|
// VSHUFPS.Z imm8 m256 ymm k ymm
|
|
// VSHUFPS.Z imm8 xmm xmm k xmm
|
|
// VSHUFPS.Z imm8 ymm ymm k ymm
|
|
// VSHUFPS.Z imm8 m512 zmm k zmm
|
|
// VSHUFPS.Z imm8 zmm zmm k zmm
|
|
func VSHUFPS_Z(i, mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSHUFPS.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VSQRTPD: Compute Square Roots of Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSQRTPD m128 xmm
|
|
// VSQRTPD m256 ymm
|
|
// VSQRTPD xmm xmm
|
|
// VSQRTPD ymm ymm
|
|
// VSQRTPD m128 k xmm
|
|
// VSQRTPD m256 k ymm
|
|
// VSQRTPD xmm k xmm
|
|
// VSQRTPD ymm k ymm
|
|
// VSQRTPD m512 k zmm
|
|
// VSQRTPD m512 zmm
|
|
// VSQRTPD zmm k zmm
|
|
// VSQRTPD zmm zmm
|
|
func VSQRTPD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSQRTPD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VSQRTPD_BCST: Compute Square Roots of Packed Double-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSQRTPD.BCST m32 k xmm
|
|
// VSQRTPD.BCST m32 k ymm
|
|
// VSQRTPD.BCST m32 xmm
|
|
// VSQRTPD.BCST m32 ymm
|
|
// VSQRTPD.BCST m64 k zmm
|
|
// VSQRTPD.BCST m64 zmm
|
|
func VSQRTPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSQRTPD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VSQRTPD_BCST_Z: Compute Square Roots of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSQRTPD.BCST.Z m32 k xmm
|
|
// VSQRTPD.BCST.Z m32 k ymm
|
|
// VSQRTPD.BCST.Z m64 k zmm
|
|
func VSQRTPD_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSQRTPD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz})
|
|
}
|
|
|
|
// VSQRTPD_RD_SAE: Compute Square Roots of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSQRTPD.RD_SAE zmm k zmm
|
|
// VSQRTPD.RD_SAE zmm zmm
|
|
func VSQRTPD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSQRTPD.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VSQRTPD_RD_SAE_Z: Compute Square Roots of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSQRTPD.RD_SAE.Z zmm k zmm
|
|
func VSQRTPD_RD_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSQRTPD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VSQRTPD_RN_SAE: Compute Square Roots of Packed Double-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSQRTPD.RN_SAE zmm k zmm
|
|
// VSQRTPD.RN_SAE zmm zmm
|
|
func VSQRTPD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSQRTPD.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VSQRTPD_RN_SAE_Z: Compute Square Roots of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSQRTPD.RN_SAE.Z zmm k zmm
|
|
func VSQRTPD_RN_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSQRTPD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VSQRTPD_RU_SAE: Compute Square Roots of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSQRTPD.RU_SAE zmm k zmm
|
|
// VSQRTPD.RU_SAE zmm zmm
|
|
func VSQRTPD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSQRTPD.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VSQRTPD_RU_SAE_Z: Compute Square Roots of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSQRTPD.RU_SAE.Z zmm k zmm
|
|
func VSQRTPD_RU_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSQRTPD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VSQRTPD_RZ_SAE: Compute Square Roots of Packed Double-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSQRTPD.RZ_SAE zmm k zmm
|
|
// VSQRTPD.RZ_SAE zmm zmm
|
|
func VSQRTPD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSQRTPD.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VSQRTPD_RZ_SAE_Z: Compute Square Roots of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSQRTPD.RZ_SAE.Z zmm k zmm
|
|
func VSQRTPD_RZ_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSQRTPD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VSQRTPD_Z: Compute Square Roots of Packed Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSQRTPD.Z m128 k xmm
|
|
// VSQRTPD.Z m256 k ymm
|
|
// VSQRTPD.Z xmm k xmm
|
|
// VSQRTPD.Z ymm k ymm
|
|
// VSQRTPD.Z m512 k zmm
|
|
// VSQRTPD.Z zmm k zmm
|
|
func VSQRTPD_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSQRTPD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz})
|
|
}
|
|
|
|
// VSQRTPS: Compute Square Roots of Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSQRTPS m128 xmm
|
|
// VSQRTPS m256 ymm
|
|
// VSQRTPS xmm xmm
|
|
// VSQRTPS ymm ymm
|
|
// VSQRTPS m128 k xmm
|
|
// VSQRTPS m256 k ymm
|
|
// VSQRTPS xmm k xmm
|
|
// VSQRTPS ymm k ymm
|
|
// VSQRTPS m512 k zmm
|
|
// VSQRTPS m512 zmm
|
|
// VSQRTPS zmm k zmm
|
|
// VSQRTPS zmm zmm
|
|
func VSQRTPS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSQRTPS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VSQRTPS_BCST: Compute Square Roots of Packed Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSQRTPS.BCST m32 k xmm
|
|
// VSQRTPS.BCST m32 k ymm
|
|
// VSQRTPS.BCST m32 xmm
|
|
// VSQRTPS.BCST m32 ymm
|
|
// VSQRTPS.BCST m32 k zmm
|
|
// VSQRTPS.BCST m32 zmm
|
|
func VSQRTPS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSQRTPS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VSQRTPS_BCST_Z: Compute Square Roots of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSQRTPS.BCST.Z m32 k xmm
|
|
// VSQRTPS.BCST.Z m32 k ymm
|
|
// VSQRTPS.BCST.Z m32 k zmm
|
|
func VSQRTPS_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSQRTPS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz})
|
|
}
|
|
|
|
// VSQRTPS_RD_SAE: Compute Square Roots of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSQRTPS.RD_SAE zmm k zmm
|
|
// VSQRTPS.RD_SAE zmm zmm
|
|
func VSQRTPS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSQRTPS.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VSQRTPS_RD_SAE_Z: Compute Square Roots of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSQRTPS.RD_SAE.Z zmm k zmm
|
|
func VSQRTPS_RD_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSQRTPS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VSQRTPS_RN_SAE: Compute Square Roots of Packed Single-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSQRTPS.RN_SAE zmm k zmm
|
|
// VSQRTPS.RN_SAE zmm zmm
|
|
func VSQRTPS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSQRTPS.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VSQRTPS_RN_SAE_Z: Compute Square Roots of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSQRTPS.RN_SAE.Z zmm k zmm
|
|
func VSQRTPS_RN_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSQRTPS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VSQRTPS_RU_SAE: Compute Square Roots of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSQRTPS.RU_SAE zmm k zmm
|
|
// VSQRTPS.RU_SAE zmm zmm
|
|
func VSQRTPS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSQRTPS.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VSQRTPS_RU_SAE_Z: Compute Square Roots of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSQRTPS.RU_SAE.Z zmm k zmm
|
|
func VSQRTPS_RU_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSQRTPS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VSQRTPS_RZ_SAE: Compute Square Roots of Packed Single-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSQRTPS.RZ_SAE zmm k zmm
|
|
// VSQRTPS.RZ_SAE zmm zmm
|
|
func VSQRTPS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSQRTPS.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VSQRTPS_RZ_SAE_Z: Compute Square Roots of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSQRTPS.RZ_SAE.Z zmm k zmm
|
|
func VSQRTPS_RZ_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSQRTPS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, k, z1})
|
|
}
|
|
|
|
// VSQRTPS_Z: Compute Square Roots of Packed Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSQRTPS.Z m128 k xmm
|
|
// VSQRTPS.Z m256 k ymm
|
|
// VSQRTPS.Z xmm k xmm
|
|
// VSQRTPS.Z ymm k ymm
|
|
// VSQRTPS.Z m512 k zmm
|
|
// VSQRTPS.Z zmm k zmm
|
|
func VSQRTPS_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSQRTPS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz})
|
|
}
|
|
|
|
// VSQRTSD: Compute Square Root of Scalar Double-Precision Floating-Point Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSQRTSD m64 xmm xmm
|
|
// VSQRTSD xmm xmm xmm
|
|
// VSQRTSD m64 xmm k xmm
|
|
// VSQRTSD xmm xmm k xmm
|
|
func VSQRTSD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSQRTSD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VSQRTSD_RD_SAE: Compute Square Root of Scalar Double-Precision Floating-Point Value (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSQRTSD.RD_SAE xmm xmm k xmm
|
|
// VSQRTSD.RD_SAE xmm xmm xmm
|
|
func VSQRTSD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSQRTSD.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VSQRTSD_RD_SAE_Z: Compute Square Root of Scalar Double-Precision Floating-Point Value (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSQRTSD.RD_SAE.Z xmm xmm k xmm
|
|
func VSQRTSD_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSQRTSD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VSQRTSD_RN_SAE: Compute Square Root of Scalar Double-Precision Floating-Point Value (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSQRTSD.RN_SAE xmm xmm k xmm
|
|
// VSQRTSD.RN_SAE xmm xmm xmm
|
|
func VSQRTSD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSQRTSD.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VSQRTSD_RN_SAE_Z: Compute Square Root of Scalar Double-Precision Floating-Point Value (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSQRTSD.RN_SAE.Z xmm xmm k xmm
|
|
func VSQRTSD_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSQRTSD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VSQRTSD_RU_SAE: Compute Square Root of Scalar Double-Precision Floating-Point Value (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSQRTSD.RU_SAE xmm xmm k xmm
|
|
// VSQRTSD.RU_SAE xmm xmm xmm
|
|
func VSQRTSD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSQRTSD.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VSQRTSD_RU_SAE_Z: Compute Square Root of Scalar Double-Precision Floating-Point Value (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSQRTSD.RU_SAE.Z xmm xmm k xmm
|
|
func VSQRTSD_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSQRTSD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VSQRTSD_RZ_SAE: Compute Square Root of Scalar Double-Precision Floating-Point Value (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSQRTSD.RZ_SAE xmm xmm k xmm
|
|
// VSQRTSD.RZ_SAE xmm xmm xmm
|
|
func VSQRTSD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSQRTSD.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VSQRTSD_RZ_SAE_Z: Compute Square Root of Scalar Double-Precision Floating-Point Value (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSQRTSD.RZ_SAE.Z xmm xmm k xmm
|
|
func VSQRTSD_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSQRTSD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VSQRTSD_Z: Compute Square Root of Scalar Double-Precision Floating-Point Value (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSQRTSD.Z m64 xmm k xmm
|
|
// VSQRTSD.Z xmm xmm k xmm
|
|
func VSQRTSD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSQRTSD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VSQRTSS: Compute Square Root of Scalar Single-Precision Floating-Point Value.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSQRTSS m32 xmm xmm
|
|
// VSQRTSS xmm xmm xmm
|
|
// VSQRTSS m32 xmm k xmm
|
|
// VSQRTSS xmm xmm k xmm
|
|
func VSQRTSS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSQRTSS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VSQRTSS_RD_SAE: Compute Square Root of Scalar Single-Precision Floating-Point Value (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSQRTSS.RD_SAE xmm xmm k xmm
|
|
// VSQRTSS.RD_SAE xmm xmm xmm
|
|
func VSQRTSS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSQRTSS.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VSQRTSS_RD_SAE_Z: Compute Square Root of Scalar Single-Precision Floating-Point Value (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSQRTSS.RD_SAE.Z xmm xmm k xmm
|
|
func VSQRTSS_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSQRTSS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VSQRTSS_RN_SAE: Compute Square Root of Scalar Single-Precision Floating-Point Value (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSQRTSS.RN_SAE xmm xmm k xmm
|
|
// VSQRTSS.RN_SAE xmm xmm xmm
|
|
func VSQRTSS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSQRTSS.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VSQRTSS_RN_SAE_Z: Compute Square Root of Scalar Single-Precision Floating-Point Value (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSQRTSS.RN_SAE.Z xmm xmm k xmm
|
|
func VSQRTSS_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSQRTSS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VSQRTSS_RU_SAE: Compute Square Root of Scalar Single-Precision Floating-Point Value (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSQRTSS.RU_SAE xmm xmm k xmm
|
|
// VSQRTSS.RU_SAE xmm xmm xmm
|
|
func VSQRTSS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSQRTSS.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VSQRTSS_RU_SAE_Z: Compute Square Root of Scalar Single-Precision Floating-Point Value (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSQRTSS.RU_SAE.Z xmm xmm k xmm
|
|
func VSQRTSS_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSQRTSS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VSQRTSS_RZ_SAE: Compute Square Root of Scalar Single-Precision Floating-Point Value (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSQRTSS.RZ_SAE xmm xmm k xmm
|
|
// VSQRTSS.RZ_SAE xmm xmm xmm
|
|
func VSQRTSS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSQRTSS.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VSQRTSS_RZ_SAE_Z: Compute Square Root of Scalar Single-Precision Floating-Point Value (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSQRTSS.RZ_SAE.Z xmm xmm k xmm
|
|
func VSQRTSS_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSQRTSS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VSQRTSS_Z: Compute Square Root of Scalar Single-Precision Floating-Point Value (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSQRTSS.Z m32 xmm k xmm
|
|
// VSQRTSS.Z xmm xmm k xmm
|
|
func VSQRTSS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSQRTSS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VSTMXCSR: Store MXCSR Register State.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSTMXCSR m32
|
|
func VSTMXCSR(m operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSTMXCSR.Forms(), sffxs{}, []operand.Op{m})
|
|
}
|
|
|
|
// VSUBPD: Subtract Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSUBPD m128 xmm xmm
|
|
// VSUBPD m256 ymm ymm
|
|
// VSUBPD xmm xmm xmm
|
|
// VSUBPD ymm ymm ymm
|
|
// VSUBPD m128 xmm k xmm
|
|
// VSUBPD m256 ymm k ymm
|
|
// VSUBPD xmm xmm k xmm
|
|
// VSUBPD ymm ymm k ymm
|
|
// VSUBPD m512 zmm k zmm
|
|
// VSUBPD m512 zmm zmm
|
|
// VSUBPD zmm zmm k zmm
|
|
// VSUBPD zmm zmm zmm
|
|
func VSUBPD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSUBPD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VSUBPD_BCST: Subtract Packed Double-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSUBPD.BCST m64 xmm k xmm
|
|
// VSUBPD.BCST m64 xmm xmm
|
|
// VSUBPD.BCST m64 ymm k ymm
|
|
// VSUBPD.BCST m64 ymm ymm
|
|
// VSUBPD.BCST m64 zmm k zmm
|
|
// VSUBPD.BCST m64 zmm zmm
|
|
func VSUBPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSUBPD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VSUBPD_BCST_Z: Subtract Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSUBPD.BCST.Z m64 xmm k xmm
|
|
// VSUBPD.BCST.Z m64 ymm k ymm
|
|
// VSUBPD.BCST.Z m64 zmm k zmm
|
|
func VSUBPD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSUBPD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VSUBPD_RD_SAE: Subtract Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSUBPD.RD_SAE zmm zmm k zmm
|
|
// VSUBPD.RD_SAE zmm zmm zmm
|
|
func VSUBPD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSUBPD.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VSUBPD_RD_SAE_Z: Subtract Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSUBPD.RD_SAE.Z zmm zmm k zmm
|
|
func VSUBPD_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSUBPD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VSUBPD_RN_SAE: Subtract Packed Double-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSUBPD.RN_SAE zmm zmm k zmm
|
|
// VSUBPD.RN_SAE zmm zmm zmm
|
|
func VSUBPD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSUBPD.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VSUBPD_RN_SAE_Z: Subtract Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSUBPD.RN_SAE.Z zmm zmm k zmm
|
|
func VSUBPD_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSUBPD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VSUBPD_RU_SAE: Subtract Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSUBPD.RU_SAE zmm zmm k zmm
|
|
// VSUBPD.RU_SAE zmm zmm zmm
|
|
func VSUBPD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSUBPD.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VSUBPD_RU_SAE_Z: Subtract Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSUBPD.RU_SAE.Z zmm zmm k zmm
|
|
func VSUBPD_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSUBPD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VSUBPD_RZ_SAE: Subtract Packed Double-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSUBPD.RZ_SAE zmm zmm k zmm
|
|
// VSUBPD.RZ_SAE zmm zmm zmm
|
|
func VSUBPD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSUBPD.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VSUBPD_RZ_SAE_Z: Subtract Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSUBPD.RZ_SAE.Z zmm zmm k zmm
|
|
func VSUBPD_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSUBPD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VSUBPD_Z: Subtract Packed Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSUBPD.Z m128 xmm k xmm
|
|
// VSUBPD.Z m256 ymm k ymm
|
|
// VSUBPD.Z xmm xmm k xmm
|
|
// VSUBPD.Z ymm ymm k ymm
|
|
// VSUBPD.Z m512 zmm k zmm
|
|
// VSUBPD.Z zmm zmm k zmm
|
|
func VSUBPD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSUBPD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VSUBPS: Subtract Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSUBPS m128 xmm xmm
|
|
// VSUBPS m256 ymm ymm
|
|
// VSUBPS xmm xmm xmm
|
|
// VSUBPS ymm ymm ymm
|
|
// VSUBPS m128 xmm k xmm
|
|
// VSUBPS m256 ymm k ymm
|
|
// VSUBPS xmm xmm k xmm
|
|
// VSUBPS ymm ymm k ymm
|
|
// VSUBPS m512 zmm k zmm
|
|
// VSUBPS m512 zmm zmm
|
|
// VSUBPS zmm zmm k zmm
|
|
// VSUBPS zmm zmm zmm
|
|
func VSUBPS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSUBPS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VSUBPS_BCST: Subtract Packed Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSUBPS.BCST m32 xmm k xmm
|
|
// VSUBPS.BCST m32 xmm xmm
|
|
// VSUBPS.BCST m32 ymm k ymm
|
|
// VSUBPS.BCST m32 ymm ymm
|
|
// VSUBPS.BCST m32 zmm k zmm
|
|
// VSUBPS.BCST m32 zmm zmm
|
|
func VSUBPS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSUBPS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VSUBPS_BCST_Z: Subtract Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSUBPS.BCST.Z m32 xmm k xmm
|
|
// VSUBPS.BCST.Z m32 ymm k ymm
|
|
// VSUBPS.BCST.Z m32 zmm k zmm
|
|
func VSUBPS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSUBPS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VSUBPS_RD_SAE: Subtract Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSUBPS.RD_SAE zmm zmm k zmm
|
|
// VSUBPS.RD_SAE zmm zmm zmm
|
|
func VSUBPS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSUBPS.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VSUBPS_RD_SAE_Z: Subtract Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSUBPS.RD_SAE.Z zmm zmm k zmm
|
|
func VSUBPS_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSUBPS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VSUBPS_RN_SAE: Subtract Packed Single-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSUBPS.RN_SAE zmm zmm k zmm
|
|
// VSUBPS.RN_SAE zmm zmm zmm
|
|
func VSUBPS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSUBPS.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VSUBPS_RN_SAE_Z: Subtract Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSUBPS.RN_SAE.Z zmm zmm k zmm
|
|
func VSUBPS_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSUBPS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VSUBPS_RU_SAE: Subtract Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSUBPS.RU_SAE zmm zmm k zmm
|
|
// VSUBPS.RU_SAE zmm zmm zmm
|
|
func VSUBPS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSUBPS.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VSUBPS_RU_SAE_Z: Subtract Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSUBPS.RU_SAE.Z zmm zmm k zmm
|
|
func VSUBPS_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSUBPS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VSUBPS_RZ_SAE: Subtract Packed Single-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSUBPS.RZ_SAE zmm zmm k zmm
|
|
// VSUBPS.RZ_SAE zmm zmm zmm
|
|
func VSUBPS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSUBPS.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VSUBPS_RZ_SAE_Z: Subtract Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSUBPS.RZ_SAE.Z zmm zmm k zmm
|
|
func VSUBPS_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSUBPS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2})
|
|
}
|
|
|
|
// VSUBPS_Z: Subtract Packed Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSUBPS.Z m128 xmm k xmm
|
|
// VSUBPS.Z m256 ymm k ymm
|
|
// VSUBPS.Z xmm xmm k xmm
|
|
// VSUBPS.Z ymm ymm k ymm
|
|
// VSUBPS.Z m512 zmm k zmm
|
|
// VSUBPS.Z zmm zmm k zmm
|
|
func VSUBPS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSUBPS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VSUBSD: Subtract Scalar Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSUBSD m64 xmm xmm
|
|
// VSUBSD xmm xmm xmm
|
|
// VSUBSD m64 xmm k xmm
|
|
// VSUBSD xmm xmm k xmm
|
|
func VSUBSD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSUBSD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VSUBSD_RD_SAE: Subtract Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSUBSD.RD_SAE xmm xmm k xmm
|
|
// VSUBSD.RD_SAE xmm xmm xmm
|
|
func VSUBSD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSUBSD.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VSUBSD_RD_SAE_Z: Subtract Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSUBSD.RD_SAE.Z xmm xmm k xmm
|
|
func VSUBSD_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSUBSD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VSUBSD_RN_SAE: Subtract Scalar Double-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSUBSD.RN_SAE xmm xmm k xmm
|
|
// VSUBSD.RN_SAE xmm xmm xmm
|
|
func VSUBSD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSUBSD.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VSUBSD_RN_SAE_Z: Subtract Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSUBSD.RN_SAE.Z xmm xmm k xmm
|
|
func VSUBSD_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSUBSD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VSUBSD_RU_SAE: Subtract Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSUBSD.RU_SAE xmm xmm k xmm
|
|
// VSUBSD.RU_SAE xmm xmm xmm
|
|
func VSUBSD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSUBSD.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VSUBSD_RU_SAE_Z: Subtract Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSUBSD.RU_SAE.Z xmm xmm k xmm
|
|
func VSUBSD_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSUBSD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VSUBSD_RZ_SAE: Subtract Scalar Double-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSUBSD.RZ_SAE xmm xmm k xmm
|
|
// VSUBSD.RZ_SAE xmm xmm xmm
|
|
func VSUBSD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSUBSD.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VSUBSD_RZ_SAE_Z: Subtract Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSUBSD.RZ_SAE.Z xmm xmm k xmm
|
|
func VSUBSD_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSUBSD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VSUBSD_Z: Subtract Scalar Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSUBSD.Z m64 xmm k xmm
|
|
// VSUBSD.Z xmm xmm k xmm
|
|
func VSUBSD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSUBSD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VSUBSS: Subtract Scalar Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSUBSS m32 xmm xmm
|
|
// VSUBSS xmm xmm xmm
|
|
// VSUBSS m32 xmm k xmm
|
|
// VSUBSS xmm xmm k xmm
|
|
func VSUBSS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSUBSS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VSUBSS_RD_SAE: Subtract Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSUBSS.RD_SAE xmm xmm k xmm
|
|
// VSUBSS.RD_SAE xmm xmm xmm
|
|
func VSUBSS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSUBSS.Forms(), sffxs{sffxRD_SAE}, ops)
|
|
}
|
|
|
|
// VSUBSS_RD_SAE_Z: Subtract Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSUBSS.RD_SAE.Z xmm xmm k xmm
|
|
func VSUBSS_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSUBSS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VSUBSS_RN_SAE: Subtract Scalar Single-Precision Floating-Point Values (Round Towards Nearest).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSUBSS.RN_SAE xmm xmm k xmm
|
|
// VSUBSS.RN_SAE xmm xmm xmm
|
|
func VSUBSS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSUBSS.Forms(), sffxs{sffxRN_SAE}, ops)
|
|
}
|
|
|
|
// VSUBSS_RN_SAE_Z: Subtract Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSUBSS.RN_SAE.Z xmm xmm k xmm
|
|
func VSUBSS_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSUBSS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VSUBSS_RU_SAE: Subtract Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSUBSS.RU_SAE xmm xmm k xmm
|
|
// VSUBSS.RU_SAE xmm xmm xmm
|
|
func VSUBSS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSUBSS.Forms(), sffxs{sffxRU_SAE}, ops)
|
|
}
|
|
|
|
// VSUBSS_RU_SAE_Z: Subtract Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSUBSS.RU_SAE.Z xmm xmm k xmm
|
|
func VSUBSS_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSUBSS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VSUBSS_RZ_SAE: Subtract Scalar Single-Precision Floating-Point Values (Round Towards Zero).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSUBSS.RZ_SAE xmm xmm k xmm
|
|
// VSUBSS.RZ_SAE xmm xmm xmm
|
|
func VSUBSS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSUBSS.Forms(), sffxs{sffxRZ_SAE}, ops)
|
|
}
|
|
|
|
// VSUBSS_RZ_SAE_Z: Subtract Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSUBSS.RZ_SAE.Z xmm xmm k xmm
|
|
func VSUBSS_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSUBSS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2})
|
|
}
|
|
|
|
// VSUBSS_Z: Subtract Scalar Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VSUBSS.Z m32 xmm k xmm
|
|
// VSUBSS.Z xmm xmm k xmm
|
|
func VSUBSS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVSUBSS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1})
|
|
}
|
|
|
|
// VTESTPD: Packed Double-Precision Floating-Point Bit Test.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VTESTPD m128 xmm
|
|
// VTESTPD m256 ymm
|
|
// VTESTPD xmm xmm
|
|
// VTESTPD ymm ymm
|
|
func VTESTPD(mxy, xy operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVTESTPD.Forms(), sffxs{}, []operand.Op{mxy, xy})
|
|
}
|
|
|
|
// VTESTPS: Packed Single-Precision Floating-Point Bit Test.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VTESTPS m128 xmm
|
|
// VTESTPS m256 ymm
|
|
// VTESTPS xmm xmm
|
|
// VTESTPS ymm ymm
|
|
func VTESTPS(mxy, xy operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVTESTPS.Forms(), sffxs{}, []operand.Op{mxy, xy})
|
|
}
|
|
|
|
// VUCOMISD: Unordered Compare Scalar Double-Precision Floating-Point Values and Set EFLAGS.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VUCOMISD m64 xmm
|
|
// VUCOMISD xmm xmm
|
|
func VUCOMISD(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVUCOMISD.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// VUCOMISD_SAE: Unordered Compare Scalar Double-Precision Floating-Point Values and Set EFLAGS (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VUCOMISD.SAE xmm xmm
|
|
func VUCOMISD_SAE(x, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVUCOMISD.Forms(), sffxs{sffxSAE}, []operand.Op{x, x1})
|
|
}
|
|
|
|
// VUCOMISS: Unordered Compare Scalar Single-Precision Floating-Point Values and Set EFLAGS.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VUCOMISS m32 xmm
|
|
// VUCOMISS xmm xmm
|
|
func VUCOMISS(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVUCOMISS.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// VUCOMISS_SAE: Unordered Compare Scalar Single-Precision Floating-Point Values and Set EFLAGS (Suppress All Exceptions).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VUCOMISS.SAE xmm xmm
|
|
func VUCOMISS_SAE(x, x1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVUCOMISS.Forms(), sffxs{sffxSAE}, []operand.Op{x, x1})
|
|
}
|
|
|
|
// VUNPCKHPD: Unpack and Interleave High Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VUNPCKHPD m128 xmm xmm
|
|
// VUNPCKHPD m256 ymm ymm
|
|
// VUNPCKHPD xmm xmm xmm
|
|
// VUNPCKHPD ymm ymm ymm
|
|
// VUNPCKHPD m128 xmm k xmm
|
|
// VUNPCKHPD m256 ymm k ymm
|
|
// VUNPCKHPD xmm xmm k xmm
|
|
// VUNPCKHPD ymm ymm k ymm
|
|
// VUNPCKHPD m512 zmm k zmm
|
|
// VUNPCKHPD m512 zmm zmm
|
|
// VUNPCKHPD zmm zmm k zmm
|
|
// VUNPCKHPD zmm zmm zmm
|
|
func VUNPCKHPD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVUNPCKHPD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VUNPCKHPD_BCST: Unpack and Interleave High Packed Double-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VUNPCKHPD.BCST m64 xmm k xmm
|
|
// VUNPCKHPD.BCST m64 xmm xmm
|
|
// VUNPCKHPD.BCST m64 ymm k ymm
|
|
// VUNPCKHPD.BCST m64 ymm ymm
|
|
// VUNPCKHPD.BCST m64 zmm k zmm
|
|
// VUNPCKHPD.BCST m64 zmm zmm
|
|
func VUNPCKHPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVUNPCKHPD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VUNPCKHPD_BCST_Z: Unpack and Interleave High Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VUNPCKHPD.BCST.Z m64 xmm k xmm
|
|
// VUNPCKHPD.BCST.Z m64 ymm k ymm
|
|
// VUNPCKHPD.BCST.Z m64 zmm k zmm
|
|
func VUNPCKHPD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVUNPCKHPD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VUNPCKHPD_Z: Unpack and Interleave High Packed Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VUNPCKHPD.Z m128 xmm k xmm
|
|
// VUNPCKHPD.Z m256 ymm k ymm
|
|
// VUNPCKHPD.Z xmm xmm k xmm
|
|
// VUNPCKHPD.Z ymm ymm k ymm
|
|
// VUNPCKHPD.Z m512 zmm k zmm
|
|
// VUNPCKHPD.Z zmm zmm k zmm
|
|
func VUNPCKHPD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVUNPCKHPD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VUNPCKHPS: Unpack and Interleave High Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VUNPCKHPS m128 xmm xmm
|
|
// VUNPCKHPS m256 ymm ymm
|
|
// VUNPCKHPS xmm xmm xmm
|
|
// VUNPCKHPS ymm ymm ymm
|
|
// VUNPCKHPS m128 xmm k xmm
|
|
// VUNPCKHPS m256 ymm k ymm
|
|
// VUNPCKHPS xmm xmm k xmm
|
|
// VUNPCKHPS ymm ymm k ymm
|
|
// VUNPCKHPS m512 zmm k zmm
|
|
// VUNPCKHPS m512 zmm zmm
|
|
// VUNPCKHPS zmm zmm k zmm
|
|
// VUNPCKHPS zmm zmm zmm
|
|
func VUNPCKHPS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVUNPCKHPS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VUNPCKHPS_BCST: Unpack and Interleave High Packed Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VUNPCKHPS.BCST m32 xmm k xmm
|
|
// VUNPCKHPS.BCST m32 xmm xmm
|
|
// VUNPCKHPS.BCST m32 ymm k ymm
|
|
// VUNPCKHPS.BCST m32 ymm ymm
|
|
// VUNPCKHPS.BCST m32 zmm k zmm
|
|
// VUNPCKHPS.BCST m32 zmm zmm
|
|
func VUNPCKHPS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVUNPCKHPS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VUNPCKHPS_BCST_Z: Unpack and Interleave High Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VUNPCKHPS.BCST.Z m32 xmm k xmm
|
|
// VUNPCKHPS.BCST.Z m32 ymm k ymm
|
|
// VUNPCKHPS.BCST.Z m32 zmm k zmm
|
|
func VUNPCKHPS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVUNPCKHPS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VUNPCKHPS_Z: Unpack and Interleave High Packed Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VUNPCKHPS.Z m128 xmm k xmm
|
|
// VUNPCKHPS.Z m256 ymm k ymm
|
|
// VUNPCKHPS.Z xmm xmm k xmm
|
|
// VUNPCKHPS.Z ymm ymm k ymm
|
|
// VUNPCKHPS.Z m512 zmm k zmm
|
|
// VUNPCKHPS.Z zmm zmm k zmm
|
|
func VUNPCKHPS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVUNPCKHPS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VUNPCKLPD: Unpack and Interleave Low Packed Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VUNPCKLPD m128 xmm xmm
|
|
// VUNPCKLPD m256 ymm ymm
|
|
// VUNPCKLPD xmm xmm xmm
|
|
// VUNPCKLPD ymm ymm ymm
|
|
// VUNPCKLPD m128 xmm k xmm
|
|
// VUNPCKLPD m256 ymm k ymm
|
|
// VUNPCKLPD xmm xmm k xmm
|
|
// VUNPCKLPD ymm ymm k ymm
|
|
// VUNPCKLPD m512 zmm k zmm
|
|
// VUNPCKLPD m512 zmm zmm
|
|
// VUNPCKLPD zmm zmm k zmm
|
|
// VUNPCKLPD zmm zmm zmm
|
|
func VUNPCKLPD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVUNPCKLPD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VUNPCKLPD_BCST: Unpack and Interleave Low Packed Double-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VUNPCKLPD.BCST m64 xmm k xmm
|
|
// VUNPCKLPD.BCST m64 xmm xmm
|
|
// VUNPCKLPD.BCST m64 ymm k ymm
|
|
// VUNPCKLPD.BCST m64 ymm ymm
|
|
// VUNPCKLPD.BCST m64 zmm k zmm
|
|
// VUNPCKLPD.BCST m64 zmm zmm
|
|
func VUNPCKLPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVUNPCKLPD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VUNPCKLPD_BCST_Z: Unpack and Interleave Low Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VUNPCKLPD.BCST.Z m64 xmm k xmm
|
|
// VUNPCKLPD.BCST.Z m64 ymm k ymm
|
|
// VUNPCKLPD.BCST.Z m64 zmm k zmm
|
|
func VUNPCKLPD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVUNPCKLPD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VUNPCKLPD_Z: Unpack and Interleave Low Packed Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VUNPCKLPD.Z m128 xmm k xmm
|
|
// VUNPCKLPD.Z m256 ymm k ymm
|
|
// VUNPCKLPD.Z xmm xmm k xmm
|
|
// VUNPCKLPD.Z ymm ymm k ymm
|
|
// VUNPCKLPD.Z m512 zmm k zmm
|
|
// VUNPCKLPD.Z zmm zmm k zmm
|
|
func VUNPCKLPD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVUNPCKLPD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VUNPCKLPS: Unpack and Interleave Low Packed Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VUNPCKLPS m128 xmm xmm
|
|
// VUNPCKLPS m256 ymm ymm
|
|
// VUNPCKLPS xmm xmm xmm
|
|
// VUNPCKLPS ymm ymm ymm
|
|
// VUNPCKLPS m128 xmm k xmm
|
|
// VUNPCKLPS m256 ymm k ymm
|
|
// VUNPCKLPS xmm xmm k xmm
|
|
// VUNPCKLPS ymm ymm k ymm
|
|
// VUNPCKLPS m512 zmm k zmm
|
|
// VUNPCKLPS m512 zmm zmm
|
|
// VUNPCKLPS zmm zmm k zmm
|
|
// VUNPCKLPS zmm zmm zmm
|
|
func VUNPCKLPS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVUNPCKLPS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VUNPCKLPS_BCST: Unpack and Interleave Low Packed Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VUNPCKLPS.BCST m32 xmm k xmm
|
|
// VUNPCKLPS.BCST m32 xmm xmm
|
|
// VUNPCKLPS.BCST m32 ymm k ymm
|
|
// VUNPCKLPS.BCST m32 ymm ymm
|
|
// VUNPCKLPS.BCST m32 zmm k zmm
|
|
// VUNPCKLPS.BCST m32 zmm zmm
|
|
func VUNPCKLPS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVUNPCKLPS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VUNPCKLPS_BCST_Z: Unpack and Interleave Low Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VUNPCKLPS.BCST.Z m32 xmm k xmm
|
|
// VUNPCKLPS.BCST.Z m32 ymm k ymm
|
|
// VUNPCKLPS.BCST.Z m32 zmm k zmm
|
|
func VUNPCKLPS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVUNPCKLPS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VUNPCKLPS_Z: Unpack and Interleave Low Packed Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VUNPCKLPS.Z m128 xmm k xmm
|
|
// VUNPCKLPS.Z m256 ymm k ymm
|
|
// VUNPCKLPS.Z xmm xmm k xmm
|
|
// VUNPCKLPS.Z ymm ymm k ymm
|
|
// VUNPCKLPS.Z m512 zmm k zmm
|
|
// VUNPCKLPS.Z zmm zmm k zmm
|
|
func VUNPCKLPS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVUNPCKLPS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VXORPD: Bitwise Logical XOR for Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VXORPD m128 xmm xmm
|
|
// VXORPD m256 ymm ymm
|
|
// VXORPD xmm xmm xmm
|
|
// VXORPD ymm ymm ymm
|
|
// VXORPD m128 xmm k xmm
|
|
// VXORPD m256 ymm k ymm
|
|
// VXORPD xmm xmm k xmm
|
|
// VXORPD ymm ymm k ymm
|
|
// VXORPD m512 zmm k zmm
|
|
// VXORPD m512 zmm zmm
|
|
// VXORPD zmm zmm k zmm
|
|
// VXORPD zmm zmm zmm
|
|
func VXORPD(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVXORPD.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VXORPD_BCST: Bitwise Logical XOR for Double-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VXORPD.BCST m64 xmm k xmm
|
|
// VXORPD.BCST m64 xmm xmm
|
|
// VXORPD.BCST m64 ymm k ymm
|
|
// VXORPD.BCST m64 ymm ymm
|
|
// VXORPD.BCST m64 zmm k zmm
|
|
// VXORPD.BCST m64 zmm zmm
|
|
func VXORPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVXORPD.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VXORPD_BCST_Z: Bitwise Logical XOR for Double-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VXORPD.BCST.Z m64 xmm k xmm
|
|
// VXORPD.BCST.Z m64 ymm k ymm
|
|
// VXORPD.BCST.Z m64 zmm k zmm
|
|
func VXORPD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVXORPD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VXORPD_Z: Bitwise Logical XOR for Double-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VXORPD.Z m128 xmm k xmm
|
|
// VXORPD.Z m256 ymm k ymm
|
|
// VXORPD.Z xmm xmm k xmm
|
|
// VXORPD.Z ymm ymm k ymm
|
|
// VXORPD.Z m512 zmm k zmm
|
|
// VXORPD.Z zmm zmm k zmm
|
|
func VXORPD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVXORPD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VXORPS: Bitwise Logical XOR for Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VXORPS m128 xmm xmm
|
|
// VXORPS m256 ymm ymm
|
|
// VXORPS xmm xmm xmm
|
|
// VXORPS ymm ymm ymm
|
|
// VXORPS m128 xmm k xmm
|
|
// VXORPS m256 ymm k ymm
|
|
// VXORPS xmm xmm k xmm
|
|
// VXORPS ymm ymm k ymm
|
|
// VXORPS m512 zmm k zmm
|
|
// VXORPS m512 zmm zmm
|
|
// VXORPS zmm zmm k zmm
|
|
// VXORPS zmm zmm zmm
|
|
func VXORPS(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVXORPS.Forms(), sffxs{}, ops)
|
|
}
|
|
|
|
// VXORPS_BCST: Bitwise Logical XOR for Single-Precision Floating-Point Values (Broadcast).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VXORPS.BCST m32 xmm k xmm
|
|
// VXORPS.BCST m32 xmm xmm
|
|
// VXORPS.BCST m32 ymm k ymm
|
|
// VXORPS.BCST m32 ymm ymm
|
|
// VXORPS.BCST m32 zmm k zmm
|
|
// VXORPS.BCST m32 zmm zmm
|
|
func VXORPS_BCST(ops ...operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVXORPS.Forms(), sffxs{sffxBCST}, ops)
|
|
}
|
|
|
|
// VXORPS_BCST_Z: Bitwise Logical XOR for Single-Precision Floating-Point Values (Broadcast, Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VXORPS.BCST.Z m32 xmm k xmm
|
|
// VXORPS.BCST.Z m32 ymm k ymm
|
|
// VXORPS.BCST.Z m32 zmm k zmm
|
|
func VXORPS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVXORPS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1})
|
|
}
|
|
|
|
// VXORPS_Z: Bitwise Logical XOR for Single-Precision Floating-Point Values (Zeroing Masking).
|
|
//
|
|
// Forms:
|
|
//
|
|
// VXORPS.Z m128 xmm k xmm
|
|
// VXORPS.Z m256 ymm k ymm
|
|
// VXORPS.Z xmm xmm k xmm
|
|
// VXORPS.Z ymm ymm k ymm
|
|
// VXORPS.Z m512 zmm k zmm
|
|
// VXORPS.Z zmm zmm k zmm
|
|
func VXORPS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcVXORPS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1})
|
|
}
|
|
|
|
// VZEROALL: Zero All YMM Registers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VZEROALL
|
|
func VZEROALL() (*intrep.Instruction, error) {
|
|
return build(opcVZEROALL.Forms(), sffxs{}, []operand.Op{})
|
|
}
|
|
|
|
// VZEROUPPER: Zero Upper Bits of YMM Registers.
|
|
//
|
|
// Forms:
|
|
//
|
|
// VZEROUPPER
|
|
func VZEROUPPER() (*intrep.Instruction, error) {
|
|
return build(opcVZEROUPPER.Forms(), sffxs{}, []operand.Op{})
|
|
}
|
|
|
|
// XADDB: Exchange and Add.
|
|
//
|
|
// Forms:
|
|
//
|
|
// XADDB r8 m8
|
|
// XADDB r8 r8
|
|
func XADDB(r, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcXADDB.Forms(), sffxs{}, []operand.Op{r, mr})
|
|
}
|
|
|
|
// XADDL: Exchange and Add.
|
|
//
|
|
// Forms:
|
|
//
|
|
// XADDL r32 m32
|
|
// XADDL r32 r32
|
|
func XADDL(r, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcXADDL.Forms(), sffxs{}, []operand.Op{r, mr})
|
|
}
|
|
|
|
// XADDQ: Exchange and Add.
|
|
//
|
|
// Forms:
|
|
//
|
|
// XADDQ r64 m64
|
|
// XADDQ r64 r64
|
|
func XADDQ(r, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcXADDQ.Forms(), sffxs{}, []operand.Op{r, mr})
|
|
}
|
|
|
|
// XADDW: Exchange and Add.
|
|
//
|
|
// Forms:
|
|
//
|
|
// XADDW r16 m16
|
|
// XADDW r16 r16
|
|
func XADDW(r, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcXADDW.Forms(), sffxs{}, []operand.Op{r, mr})
|
|
}
|
|
|
|
// XCHGB: Exchange Register/Memory with Register.
|
|
//
|
|
// Forms:
|
|
//
|
|
// XCHGB m8 r8
|
|
// XCHGB r8 m8
|
|
// XCHGB r8 r8
|
|
func XCHGB(mr, mr1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcXCHGB.Forms(), sffxs{}, []operand.Op{mr, mr1})
|
|
}
|
|
|
|
// XCHGL: Exchange Register/Memory with Register.
|
|
//
|
|
// Forms:
|
|
//
|
|
// XCHGL eax r32
|
|
// XCHGL m32 r32
|
|
// XCHGL r32 eax
|
|
// XCHGL r32 m32
|
|
// XCHGL r32 r32
|
|
func XCHGL(emr, emr1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcXCHGL.Forms(), sffxs{}, []operand.Op{emr, emr1})
|
|
}
|
|
|
|
// XCHGQ: Exchange Register/Memory with Register.
|
|
//
|
|
// Forms:
|
|
//
|
|
// XCHGQ m64 r64
|
|
// XCHGQ r64 m64
|
|
// XCHGQ r64 r64
|
|
// XCHGQ r64 rax
|
|
// XCHGQ rax r64
|
|
func XCHGQ(mr, mr1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcXCHGQ.Forms(), sffxs{}, []operand.Op{mr, mr1})
|
|
}
|
|
|
|
// XCHGW: Exchange Register/Memory with Register.
|
|
//
|
|
// Forms:
|
|
//
|
|
// XCHGW ax r16
|
|
// XCHGW m16 r16
|
|
// XCHGW r16 ax
|
|
// XCHGW r16 m16
|
|
// XCHGW r16 r16
|
|
func XCHGW(amr, amr1 operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcXCHGW.Forms(), sffxs{}, []operand.Op{amr, amr1})
|
|
}
|
|
|
|
// XGETBV: Get Value of Extended Control Register.
|
|
//
|
|
// Forms:
|
|
//
|
|
// XGETBV
|
|
func XGETBV() (*intrep.Instruction, error) {
|
|
return build(opcXGETBV.Forms(), sffxs{}, []operand.Op{})
|
|
}
|
|
|
|
// XLAT: Table Look-up Translation.
|
|
//
|
|
// Forms:
|
|
//
|
|
// XLAT
|
|
func XLAT() (*intrep.Instruction, error) {
|
|
return build(opcXLAT.Forms(), sffxs{}, []operand.Op{})
|
|
}
|
|
|
|
// XORB: Logical Exclusive OR.
|
|
//
|
|
// Forms:
|
|
//
|
|
// XORB imm8 al
|
|
// XORB imm8 m8
|
|
// XORB imm8 r8
|
|
// XORB m8 r8
|
|
// XORB r8 m8
|
|
// XORB r8 r8
|
|
func XORB(imr, amr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcXORB.Forms(), sffxs{}, []operand.Op{imr, amr})
|
|
}
|
|
|
|
// XORL: Logical Exclusive OR.
|
|
//
|
|
// Forms:
|
|
//
|
|
// XORL imm32 eax
|
|
// XORL imm32 m32
|
|
// XORL imm32 r32
|
|
// XORL imm8 m32
|
|
// XORL imm8 r32
|
|
// XORL m32 r32
|
|
// XORL r32 m32
|
|
// XORL r32 r32
|
|
func XORL(imr, emr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcXORL.Forms(), sffxs{}, []operand.Op{imr, emr})
|
|
}
|
|
|
|
// XORPD: Bitwise Logical XOR for Double-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// XORPD m128 xmm
|
|
// XORPD xmm xmm
|
|
func XORPD(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcXORPD.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// XORPS: Bitwise Logical XOR for Single-Precision Floating-Point Values.
|
|
//
|
|
// Forms:
|
|
//
|
|
// XORPS m128 xmm
|
|
// XORPS xmm xmm
|
|
func XORPS(mx, x operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcXORPS.Forms(), sffxs{}, []operand.Op{mx, x})
|
|
}
|
|
|
|
// XORQ: Logical Exclusive OR.
|
|
//
|
|
// Forms:
|
|
//
|
|
// XORQ imm32 m64
|
|
// XORQ imm32 r64
|
|
// XORQ imm32 rax
|
|
// XORQ imm8 m64
|
|
// XORQ imm8 r64
|
|
// XORQ m64 r64
|
|
// XORQ r64 m64
|
|
// XORQ r64 r64
|
|
func XORQ(imr, mr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcXORQ.Forms(), sffxs{}, []operand.Op{imr, mr})
|
|
}
|
|
|
|
// XORW: Logical Exclusive OR.
|
|
//
|
|
// Forms:
|
|
//
|
|
// XORW imm16 ax
|
|
// XORW imm16 m16
|
|
// XORW imm16 r16
|
|
// XORW imm8 m16
|
|
// XORW imm8 r16
|
|
// XORW m16 r16
|
|
// XORW r16 m16
|
|
// XORW r16 r16
|
|
func XORW(imr, amr operand.Op) (*intrep.Instruction, error) {
|
|
return build(opcXORW.Forms(), sffxs{}, []operand.Op{imr, amr})
|
|
}
|