diff --git a/src/FrontEnd/Intel.Tests/ParserTests.fs b/src/FrontEnd/Intel.Tests/ParserTests.fs index 162fee55..440131a7 100644 --- a/src/FrontEnd/Intel.Tests/ParserTests.fs +++ b/src/FrontEnd/Intel.Tests/ParserTests.fs @@ -198,6 +198,18 @@ type ParserTests() = ++ TEST ** [ O.Mem(R.EAX, 8); O.Imm(10L, 8) ] ||> testX86NoPrefixNoSeg + [] + member _.``5.1.6 Bit and Byte Instructions (2)``() = + "f30fbcf6" + ++ TZCNT ** [ O.Reg R.ESI; O.Reg R.ESI ] + ||> testX86NoPrefixNoSeg + + [] + member _.``5.1.6 Bit and Byte Instructions (3)``() = + "660fbcf6" + ++ BSF ** [ O.Reg R.SI; O.Reg R.SI ] + ||> testX86Prefix Prefix.OPSIZE + [] member _.``5.1.7 Control Transfer Instructions (1)``() = "ffe4" @@ -1842,6 +1854,102 @@ type ParserTests() = ++ VPMULLD ** [ O.Reg R.YMM0; O.Reg R.YMM3; O.Reg R.YMM3 ] ||> testX64NoPrefixNoSeg + [] + member _.``MOV to/from control registers (1)``() = + "0f20c0" + ++ MOV ** [ O.Reg R.EAX; O.Reg R.CR0 ] + ||> testX86NoPrefixNoSeg + + [] + member _.``MOV to/from control registers (2)``() = + "0f20c0" + ++ MOV ** [ O.Reg R.RAX; O.Reg R.CR0 ] + ||> testX64NoPrefixNoSeg + + [] + member _.``MOV to/from control registers (3)``() = + "440f20c0" + ++ MOV ** [ O.Reg R.RAX; O.Reg R.CR8 ] + ||> testX64NoPrefixNoSeg + + [] + member _.``MOV to/from control registers (4)``() = + "0f22d9" + ++ MOV ** [ O.Reg R.CR3; O.Reg R.RCX ] + ||> testX64NoPrefixNoSeg + + [] + member _.``MOV to/from debug registers (1)``() = + "0f21c0" + ++ MOV ** [ O.Reg R.RAX; O.Reg R.DR0 ] + ||> testX64NoPrefixNoSeg + + [] + member _.``MOV to/from debug registers (2)``() = + "0f21fa" + ++ MOV ** [ O.Reg R.RDX; O.Reg R.DR7 ] + ||> testX64NoPrefixNoSeg + + [] + member _.``MOV to/from debug registers (3)``() = + "0f23f6" + ++ MOV ** [ O.Reg R.DR6; O.Reg R.RSI ] + ||> testX64NoPrefixNoSeg + + [] + member _.``AVX512 embedded rounding (1)``() = + "62f17f082dc1" + ++ VCVTSD2SI ** [ O.Reg R.EAX; O.Reg R.XMM1 ] + ||> testX64NoPrefixNoSeg + + [] + member _.``AVX512 SAE on conversion (1)``() = + "62f17f082cc1" + ++ VCVTTSD2SI ** [ O.Reg R.EAX; O.Reg R.XMM1 ] + ||> testX64NoPrefixNoSeg + + [] + member _.``AVX512 broadcast with embedded rounding (1)``() = + "62f1f54858c2" + ++ VADDPD ** [ O.Reg R.ZMM0; O.Reg R.ZMM1; O.Reg R.ZMM2 ] + ||> testX64NoPrefixNoSeg + + [] + member _.``AVX512 broadcast with SAE (1)``() = + "62f1f548c2d300" + ++ VCMPPD ** [ O.Reg R.K2; O.Reg R.ZMM1; O.Reg R.ZMM3; O.Imm(0L, 8) ] + ||> testX64NoPrefixNoSeg + + [] + member _.``AVX512 register operand with SAE (1)``() = + "62f37d481dca00" + ++ VCVTPS2PH ** [ O.Reg R.YMM2; O.Reg R.ZMM1; O.Imm(0L, 8) ] + ||> testX64NoPrefixNoSeg + + [] + member _.``Address-size-dependent register operand (1)``() = + "f30faef0" + ++ UMONITOR ** [ O.Reg R.RAX ] + ||> testX64NoPrefixNoSeg + + [] + member _.``Address-size-dependent register operand (2)``() = + "f20f38f808" + ++ ENQCMD ** [ O.Reg R.RCX; O.Mem(R.RAX, 512) ] + ||> testX64NoPrefixNoSeg + + [] + member _.``Address-size-dependent register operand (3)``() = + "f30f38f81a" + ++ ENQCMDS ** [ O.Reg R.RBX; O.Mem(R.RDX, 512) ] + ||> testX64NoPrefixNoSeg + + [] + member _.``Address-size-dependent register operand (4)``() = + "660f38f811" + ++ MOVDIR64B ** [ O.Reg R.RDX; O.Mem(R.RCX, 512) ] + ||> testX64NoPrefixNoSeg + #if !EMULATION [] member _.``Size cond ParsingFailure Test (1)``() = diff --git a/src/FrontEnd/Intel/B2R2.FrontEnd.Intel.fsproj b/src/FrontEnd/Intel/B2R2.FrontEnd.Intel.fsproj index 0f4ecbdb..479cca34 100644 --- a/src/FrontEnd/Intel/B2R2.FrontEnd.Intel.fsproj +++ b/src/FrontEnd/Intel/B2R2.FrontEnd.Intel.fsproj @@ -16,6 +16,8 @@ + + diff --git a/src/FrontEnd/Intel/Instruction.fs b/src/FrontEnd/Intel/Instruction.fs index bbdee91a..3ea530c0 100644 --- a/src/FrontEnd/Intel/Instruction.fs +++ b/src/FrontEnd/Intel/Instruction.fs @@ -148,7 +148,7 @@ type Instruction | Opcode.HLT | Opcode.UD2 | Opcode.SYSEXIT | Opcode.SYSRET - | Opcode.IRET | Opcode.IRETW | Opcode.IRETD | Opcode.IRETQ -> true + | Opcode.IRET | Opcode.IRETD | Opcode.IRETQ -> true | _ -> false member _.IsNop = diff --git a/src/FrontEnd/Intel/Intel.fs b/src/FrontEnd/Intel/Intel.fs new file mode 100644 index 00000000..978ba517 --- /dev/null +++ b/src/FrontEnd/Intel/Intel.fs @@ -0,0 +1,51873 @@ +module B2R2.FrontEnd.Intel.InstructionArrays + +open B2R2 + +let (norOne: InstructionCore[][]) = + [| + [| // index 0(0x00) + { OpcodeByte = 0u + Opcode = Opcode.ADD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 8; Reg(8, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 1(0x01) + { OpcodeByte = 1u + Opcode = Opcode.ADD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 16; Reg(16, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 1u + Opcode = Opcode.ADD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 32; Reg(32, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 1u + Opcode = Opcode.ADD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 64; Reg(64, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 2(0x02) + { OpcodeByte = 2u + Opcode = Opcode.ADD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(8, RegBit); RM 8 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 3(0x03) + { OpcodeByte = 3u + Opcode = Opcode.ADD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 3u + Opcode = Opcode.ADD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 3u + Opcode = Opcode.ADD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 4(0x04) + { OpcodeByte = 4u + Opcode = Opcode.ADD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.AL); Imm 8 |] + OpEn = OpEn.I + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 5(0x05) + { OpcodeByte = 5u + Opcode = Opcode.ADD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.AX); Imm 16 |] + OpEn = OpEn.I + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 5u + Opcode = Opcode.ADD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.EAX); Imm 32 |] + OpEn = OpEn.I + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 5u + Opcode = Opcode.ADD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.RAX); Imm 32 |] + OpEn = OpEn.I + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 6(0x06) + { OpcodeByte = 6u + Opcode = Opcode.PUSH + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.ES) |] + OpEn = OpEn.ZO + Mode64 = Mode64.Invalid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 7(0x07) + { OpcodeByte = 7u + Opcode = Opcode.POP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.ES) |] + OpEn = OpEn.ZO + Mode64 = Mode64.Invalid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 8(0x08) + { OpcodeByte = 8u + Opcode = Opcode.OR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 8; Reg(8, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 9(0x09) + { OpcodeByte = 9u + Opcode = Opcode.OR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 16; Reg(16, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 9u + Opcode = Opcode.OR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 32; Reg(32, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 9u + Opcode = Opcode.OR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 64; Reg(64, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 10(0x0A) + { OpcodeByte = 10u + Opcode = Opcode.OR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(8, RegBit); RM 8 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 11(0x0B) + { OpcodeByte = 11u + Opcode = Opcode.OR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 11u + Opcode = Opcode.OR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 11u + Opcode = Opcode.OR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 12(0x0C) + { OpcodeByte = 12u + Opcode = Opcode.OR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.AL); Imm 8 |] + OpEn = OpEn.I + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 13(0x0D) + { OpcodeByte = 13u + Opcode = Opcode.OR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.AX); Imm 16 |] + OpEn = OpEn.I + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 13u + Opcode = Opcode.OR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.EAX); Imm 32 |] + OpEn = OpEn.I + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 13u + Opcode = Opcode.OR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.RAX); Imm 32 |] + OpEn = OpEn.I + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 14(0x0E) + { OpcodeByte = 14u + Opcode = Opcode.PUSH + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.CS) |] + OpEn = OpEn.ZO + Mode64 = Mode64.Invalid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 15(0x0F) + |] + [| // index 16(0x10) + { OpcodeByte = 16u + Opcode = Opcode.ADC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 8; Reg(8, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 17(0x11) + { OpcodeByte = 17u + Opcode = Opcode.ADC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 16; Reg(16, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 17u + Opcode = Opcode.ADC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 32; Reg(32, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 17u + Opcode = Opcode.ADC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 64; Reg(64, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 18(0x12) + { OpcodeByte = 18u + Opcode = Opcode.ADC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(8, RegBit); RM 8 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 19(0x13) + { OpcodeByte = 19u + Opcode = Opcode.ADC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 19u + Opcode = Opcode.ADC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 19u + Opcode = Opcode.ADC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 20(0x14) + { OpcodeByte = 20u + Opcode = Opcode.ADC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.AL); Imm 8 |] + OpEn = OpEn.I + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 21(0x15) + { OpcodeByte = 21u + Opcode = Opcode.ADC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.AX); Imm 16 |] + OpEn = OpEn.I + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 21u + Opcode = Opcode.ADC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.EAX); Imm 32 |] + OpEn = OpEn.I + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 21u + Opcode = Opcode.ADC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.RAX); Imm 32 |] + OpEn = OpEn.I + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 22(0x16) + { OpcodeByte = 22u + Opcode = Opcode.PUSH + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.SS) |] + OpEn = OpEn.ZO + Mode64 = Mode64.Invalid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 23(0x17) + { OpcodeByte = 23u + Opcode = Opcode.POP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.SS) |] + OpEn = OpEn.ZO + Mode64 = Mode64.Invalid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 24(0x18) + { OpcodeByte = 24u + Opcode = Opcode.SBB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 8; Reg(8, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 25(0x19) + { OpcodeByte = 25u + Opcode = Opcode.SBB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 16; Reg(16, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 25u + Opcode = Opcode.SBB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 32; Reg(32, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 25u + Opcode = Opcode.SBB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 64; Reg(64, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 26(0x1A) + { OpcodeByte = 26u + Opcode = Opcode.SBB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(8, RegBit); RM 8 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 27(0x1B) + { OpcodeByte = 27u + Opcode = Opcode.SBB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 27u + Opcode = Opcode.SBB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 27u + Opcode = Opcode.SBB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 28(0x1C) + { OpcodeByte = 28u + Opcode = Opcode.SBB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.AL); Imm 8 |] + OpEn = OpEn.I + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 29(0x1D) + { OpcodeByte = 29u + Opcode = Opcode.SBB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.AX); Imm 16 |] + OpEn = OpEn.I + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 29u + Opcode = Opcode.SBB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.EAX); Imm 32 |] + OpEn = OpEn.I + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 29u + Opcode = Opcode.SBB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.RAX); Imm 32 |] + OpEn = OpEn.I + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 30(0x1E) + { OpcodeByte = 30u + Opcode = Opcode.PUSH + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.DS) |] + OpEn = OpEn.ZO + Mode64 = Mode64.Invalid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 31(0x1F) + { OpcodeByte = 31u + Opcode = Opcode.POP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.DS) |] + OpEn = OpEn.ZO + Mode64 = Mode64.Invalid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 32(0x20) + { OpcodeByte = 32u + Opcode = Opcode.AND + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 8; Reg(8, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 33(0x21) + { OpcodeByte = 33u + Opcode = Opcode.AND + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 16; Reg(16, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 33u + Opcode = Opcode.AND + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 32; Reg(32, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 33u + Opcode = Opcode.AND + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 64; Reg(64, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 34(0x22) + { OpcodeByte = 34u + Opcode = Opcode.AND + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(8, RegBit); RM 8 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 35(0x23) + { OpcodeByte = 35u + Opcode = Opcode.AND + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 35u + Opcode = Opcode.AND + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 35u + Opcode = Opcode.AND + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 36(0x24) + { OpcodeByte = 36u + Opcode = Opcode.AND + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.AL); Imm 8 |] + OpEn = OpEn.I + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 37(0x25) + { OpcodeByte = 37u + Opcode = Opcode.AND + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.AX); Imm 16 |] + OpEn = OpEn.I + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 37u + Opcode = Opcode.AND + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.EAX); Imm 32 |] + OpEn = OpEn.I + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 37u + Opcode = Opcode.AND + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.RAX); Imm 32 |] + OpEn = OpEn.I + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 38(0x26) + |] + [| // index 39(0x27) + { OpcodeByte = 39u + Opcode = Opcode.DAA + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Invalid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 40(0x28) + { OpcodeByte = 40u + Opcode = Opcode.SUB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 8; Reg(8, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 41(0x29) + { OpcodeByte = 41u + Opcode = Opcode.SUB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 16; Reg(16, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 41u + Opcode = Opcode.SUB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 32; Reg(32, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 41u + Opcode = Opcode.SUB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 64; Reg(64, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 42(0x2A) + { OpcodeByte = 42u + Opcode = Opcode.SUB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(8, RegBit); RM 8 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 43(0x2B) + { OpcodeByte = 43u + Opcode = Opcode.SUB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 43u + Opcode = Opcode.SUB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 43u + Opcode = Opcode.SUB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 44(0x2C) + { OpcodeByte = 44u + Opcode = Opcode.SUB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.AL); Imm 8 |] + OpEn = OpEn.I + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 45(0x2D) + { OpcodeByte = 45u + Opcode = Opcode.SUB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.AX); Imm 16 |] + OpEn = OpEn.I + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 45u + Opcode = Opcode.SUB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.EAX); Imm 32 |] + OpEn = OpEn.I + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 45u + Opcode = Opcode.SUB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.RAX); Imm 32 |] + OpEn = OpEn.I + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 46(0x2E) + |] + [| // index 47(0x2F) + { OpcodeByte = 47u + Opcode = Opcode.DAS + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Invalid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 48(0x30) + { OpcodeByte = 48u + Opcode = Opcode.XOR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 8; Reg(8, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 49(0x31) + { OpcodeByte = 49u + Opcode = Opcode.XOR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 16; Reg(16, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 49u + Opcode = Opcode.XOR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 32; Reg(32, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 49u + Opcode = Opcode.XOR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 64; Reg(64, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 50(0x32) + { OpcodeByte = 50u + Opcode = Opcode.XOR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(8, RegBit); RM 8 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 51(0x33) + { OpcodeByte = 51u + Opcode = Opcode.XOR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 51u + Opcode = Opcode.XOR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 51u + Opcode = Opcode.XOR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 52(0x34) + { OpcodeByte = 52u + Opcode = Opcode.XOR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.AL); Imm 8 |] + OpEn = OpEn.I + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 53(0x35) + { OpcodeByte = 53u + Opcode = Opcode.XOR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.AX); Imm 16 |] + OpEn = OpEn.I + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 53u + Opcode = Opcode.XOR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.EAX); Imm 32 |] + OpEn = OpEn.I + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 53u + Opcode = Opcode.XOR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.RAX); Imm 32 |] + OpEn = OpEn.I + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 54(0x36) + |] + [| // index 55(0x37) + { OpcodeByte = 55u + Opcode = Opcode.AAA + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Invalid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 56(0x38) + { OpcodeByte = 56u + Opcode = Opcode.CMP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 8; Reg(8, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 57(0x39) + { OpcodeByte = 57u + Opcode = Opcode.CMP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 16; Reg(16, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 57u + Opcode = Opcode.CMP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 32; Reg(32, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 57u + Opcode = Opcode.CMP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 64; Reg(64, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 58(0x3A) + { OpcodeByte = 58u + Opcode = Opcode.CMP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(8, RegBit); RM 8 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 59(0x3B) + { OpcodeByte = 59u + Opcode = Opcode.CMP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 59u + Opcode = Opcode.CMP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 59u + Opcode = Opcode.CMP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 60(0x3C) + { OpcodeByte = 60u + Opcode = Opcode.CMP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.AL); Imm 8 |] + OpEn = OpEn.I + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 61(0x3D) + { OpcodeByte = 61u + Opcode = Opcode.CMP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.AX); Imm 16 |] + OpEn = OpEn.I + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 61u + Opcode = Opcode.CMP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.EAX); Imm 32 |] + OpEn = OpEn.I + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 61u + Opcode = Opcode.CMP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.RAX); Imm 32 |] + OpEn = OpEn.I + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 62(0x3E) + |] + [| // index 63(0x3F) + { OpcodeByte = 63u + Opcode = Opcode.AAS + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Invalid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 64(0x40) + { OpcodeByte = 64u + Opcode = Opcode.INC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(16, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 64u + Opcode = Opcode.INC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 65(0x41) + { OpcodeByte = 65u + Opcode = Opcode.INC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(16, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 65u + Opcode = Opcode.INC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 66(0x42) + { OpcodeByte = 66u + Opcode = Opcode.INC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(16, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 66u + Opcode = Opcode.INC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 67(0x43) + { OpcodeByte = 67u + Opcode = Opcode.INC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(16, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 67u + Opcode = Opcode.INC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 68(0x44) + { OpcodeByte = 68u + Opcode = Opcode.INC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(16, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 68u + Opcode = Opcode.INC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 69(0x45) + { OpcodeByte = 69u + Opcode = Opcode.INC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(16, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 69u + Opcode = Opcode.INC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 70(0x46) + { OpcodeByte = 70u + Opcode = Opcode.INC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(16, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 70u + Opcode = Opcode.INC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 71(0x47) + { OpcodeByte = 71u + Opcode = Opcode.INC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(16, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 71u + Opcode = Opcode.INC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 72(0x48) + { OpcodeByte = 72u + Opcode = Opcode.DEC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(16, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 72u + Opcode = Opcode.DEC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 73(0x49) + { OpcodeByte = 73u + Opcode = Opcode.DEC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(16, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 73u + Opcode = Opcode.DEC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 74(0x4A) + { OpcodeByte = 74u + Opcode = Opcode.DEC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(16, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 74u + Opcode = Opcode.DEC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 75(0x4B) + { OpcodeByte = 75u + Opcode = Opcode.DEC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(16, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 75u + Opcode = Opcode.DEC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 76(0x4C) + { OpcodeByte = 76u + Opcode = Opcode.DEC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(16, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 76u + Opcode = Opcode.DEC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 77(0x4D) + { OpcodeByte = 77u + Opcode = Opcode.DEC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(16, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 77u + Opcode = Opcode.DEC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 78(0x4E) + { OpcodeByte = 78u + Opcode = Opcode.DEC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(16, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 78u + Opcode = Opcode.DEC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 79(0x4F) + { OpcodeByte = 79u + Opcode = Opcode.DEC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(16, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 79u + Opcode = Opcode.DEC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 80(0x50) + { OpcodeByte = 80u + Opcode = Opcode.PUSH + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(16, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 80u + Opcode = Opcode.PUSH + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 80u + Opcode = Opcode.PUSH + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(64, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 81(0x51) + { OpcodeByte = 81u + Opcode = Opcode.PUSH + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(16, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 81u + Opcode = Opcode.PUSH + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 81u + Opcode = Opcode.PUSH + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(64, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 82(0x52) + { OpcodeByte = 82u + Opcode = Opcode.PUSH + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(16, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 82u + Opcode = Opcode.PUSH + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 82u + Opcode = Opcode.PUSH + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(64, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 83(0x53) + { OpcodeByte = 83u + Opcode = Opcode.PUSH + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(16, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 83u + Opcode = Opcode.PUSH + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 83u + Opcode = Opcode.PUSH + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(64, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 84(0x54) + { OpcodeByte = 84u + Opcode = Opcode.PUSH + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(16, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 84u + Opcode = Opcode.PUSH + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 84u + Opcode = Opcode.PUSH + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(64, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 85(0x55) + { OpcodeByte = 85u + Opcode = Opcode.PUSH + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(16, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 85u + Opcode = Opcode.PUSH + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 85u + Opcode = Opcode.PUSH + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(64, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 86(0x56) + { OpcodeByte = 86u + Opcode = Opcode.PUSH + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(16, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 86u + Opcode = Opcode.PUSH + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 86u + Opcode = Opcode.PUSH + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(64, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 87(0x57) + { OpcodeByte = 87u + Opcode = Opcode.PUSH + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(16, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 87u + Opcode = Opcode.PUSH + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 87u + Opcode = Opcode.PUSH + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(64, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 88(0x58) + { OpcodeByte = 88u + Opcode = Opcode.POP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(16, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 88u + Opcode = Opcode.POP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 88u + Opcode = Opcode.POP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(64, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 89(0x59) + { OpcodeByte = 89u + Opcode = Opcode.POP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(16, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 89u + Opcode = Opcode.POP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 89u + Opcode = Opcode.POP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(64, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 90(0x5A) + { OpcodeByte = 90u + Opcode = Opcode.POP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(16, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 90u + Opcode = Opcode.POP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 90u + Opcode = Opcode.POP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(64, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 91(0x5B) + { OpcodeByte = 91u + Opcode = Opcode.POP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(16, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 91u + Opcode = Opcode.POP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 91u + Opcode = Opcode.POP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(64, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 92(0x5C) + { OpcodeByte = 92u + Opcode = Opcode.POP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(16, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 92u + Opcode = Opcode.POP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 92u + Opcode = Opcode.POP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(64, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 93(0x5D) + { OpcodeByte = 93u + Opcode = Opcode.POP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(16, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 93u + Opcode = Opcode.POP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 93u + Opcode = Opcode.POP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(64, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 94(0x5E) + { OpcodeByte = 94u + Opcode = Opcode.POP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(16, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 94u + Opcode = Opcode.POP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 94u + Opcode = Opcode.POP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(64, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 95(0x5F) + { OpcodeByte = 95u + Opcode = Opcode.POP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(16, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 95u + Opcode = Opcode.POP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 95u + Opcode = Opcode.POP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(64, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 96(0x60) + { OpcodeByte = 96u + Opcode = Opcode.PUSHA + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Invalid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 96u + Opcode = Opcode.PUSHAD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Invalid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 97(0x61) + { OpcodeByte = 97u + Opcode = Opcode.POPA + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Invalid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 97u + Opcode = Opcode.POPAD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Invalid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 98(0x62) + { OpcodeByte = 98u + Opcode = Opcode.BOUND + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); Mem 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Invalid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 98u + Opcode = Opcode.BOUND + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); Mem 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Invalid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 99(0x63) + { OpcodeByte = 99u + Opcode = Opcode.ARPL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 16; Reg(16, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 99u + Opcode = Opcode.MOVSXD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 99u + Opcode = Opcode.MOVSXD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 99u + Opcode = Opcode.MOVSXD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 100(0x64) + |] + [| // index 101(0x65) + |] + [| // index 102(0x66) + |] + [| // index 103(0x67) + |] + [| // index 104(0x68) + { OpcodeByte = 104u + Opcode = Opcode.PUSH + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Imm 16 |] + OpEn = OpEn.I + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 104u + Opcode = Opcode.PUSH + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Imm 32 |] + OpEn = OpEn.I + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 105(0x69) + { OpcodeByte = 105u + Opcode = Opcode.IMUL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 16; Imm 16 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 105u + Opcode = Opcode.IMUL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32; Imm 32 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 105u + Opcode = Opcode.IMUL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64; Imm 32 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 106(0x6A) + { OpcodeByte = 106u + Opcode = Opcode.PUSH + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Imm 8 |] + OpEn = OpEn.I + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 107(0x6B) + { OpcodeByte = 107u + Opcode = Opcode.IMUL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 16; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 107u + Opcode = Opcode.IMUL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 107u + Opcode = Opcode.IMUL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 108(0x6C) + { OpcodeByte = 108u + Opcode = Opcode.INSB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 109(0x6D) + { OpcodeByte = 109u + Opcode = Opcode.INSW + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 109u + Opcode = Opcode.INSD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 110(0x6E) + { OpcodeByte = 110u + Opcode = Opcode.OUTSB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 111(0x6F) + { OpcodeByte = 111u + Opcode = Opcode.OUTSW + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 111u + Opcode = Opcode.OUTSD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 112(0x70) + { OpcodeByte = 112u + Opcode = Opcode.JO + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 8 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 113(0x71) + { OpcodeByte = 113u + Opcode = Opcode.JNO + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 8 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 114(0x72) + { OpcodeByte = 114u + Opcode = Opcode.JB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 8 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 114u + Opcode = Opcode.JB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 8 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 114u + Opcode = Opcode.JB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 8 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 115(0x73) + { OpcodeByte = 115u + Opcode = Opcode.JNB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 8 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 115u + Opcode = Opcode.JNB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 8 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 115u + Opcode = Opcode.JNB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 8 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 116(0x74) + { OpcodeByte = 116u + Opcode = Opcode.JZ + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 8 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 116u + Opcode = Opcode.JZ + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 8 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 117(0x75) + { OpcodeByte = 117u + Opcode = Opcode.JNE + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 8 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 117u + Opcode = Opcode.JNE + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 8 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 118(0x76) + { OpcodeByte = 118u + Opcode = Opcode.JBE + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 8 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 118u + Opcode = Opcode.JBE + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 8 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 119(0x77) + { OpcodeByte = 119u + Opcode = Opcode.JA + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 8 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 119u + Opcode = Opcode.JA + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 8 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 120(0x78) + { OpcodeByte = 120u + Opcode = Opcode.JS + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 8 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 121(0x79) + { OpcodeByte = 121u + Opcode = Opcode.JNS + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 8 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 122(0x7A) + { OpcodeByte = 122u + Opcode = Opcode.JPE + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 8 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 122u + Opcode = Opcode.JPE + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 8 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 123(0x7B) + { OpcodeByte = 123u + Opcode = Opcode.JNP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 8 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 123u + Opcode = Opcode.JNP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 8 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 124(0x7C) + { OpcodeByte = 124u + Opcode = Opcode.JL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 8 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 124u + Opcode = Opcode.JL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 8 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 125(0x7D) + { OpcodeByte = 125u + Opcode = Opcode.JNL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 8 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 125u + Opcode = Opcode.JNL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 8 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 126(0x7E) + { OpcodeByte = 126u + Opcode = Opcode.JNG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 8 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 126u + Opcode = Opcode.JNG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 8 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 127(0x7F) + { OpcodeByte = 127u + Opcode = Opcode.JNLE + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 8 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 127u + Opcode = Opcode.JNLE + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 8 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 128(0x80) + { OpcodeByte = 128u + Opcode = Opcode.ADC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| RM 8; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 128u + Opcode = Opcode.ADD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpRegMem + Operands = [| RM 8; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 128u + Opcode = Opcode.AND + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| RM 8; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 128u + Opcode = Opcode.CMP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp7 OpRegMem + Operands = [| RM 8; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 128u + Opcode = Opcode.OR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp1 OpRegMem + Operands = [| RM 8; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 128u + Opcode = Opcode.SBB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp3 OpRegMem + Operands = [| RM 8; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 128u + Opcode = Opcode.SUB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp5 OpRegMem + Operands = [| RM 8; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 128u + Opcode = Opcode.XOR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp6 OpRegMem + Operands = [| RM 8; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 129(0x81) + { OpcodeByte = 129u + Opcode = Opcode.ADC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| RM 16; Imm 16 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 129u + Opcode = Opcode.ADC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| RM 32; Imm 32 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 129u + Opcode = Opcode.ADC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| RM 64; Imm 32 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 129u + Opcode = Opcode.ADD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpRegMem + Operands = [| RM 16; Imm 16 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 129u + Opcode = Opcode.ADD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpRegMem + Operands = [| RM 32; Imm 32 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 129u + Opcode = Opcode.ADD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpRegMem + Operands = [| RM 64; Imm 32 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 129u + Opcode = Opcode.AND + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| RM 16; Imm 16 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 129u + Opcode = Opcode.AND + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| RM 32; Imm 32 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 129u + Opcode = Opcode.AND + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| RM 64; Imm 32 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 129u + Opcode = Opcode.CMP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp7 OpRegMem + Operands = [| RM 16; Imm 16 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 129u + Opcode = Opcode.CMP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp7 OpRegMem + Operands = [| RM 32; Imm 32 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 129u + Opcode = Opcode.CMP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp7 OpRegMem + Operands = [| RM 64; Imm 32 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 129u + Opcode = Opcode.OR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp1 OpRegMem + Operands = [| RM 16; Imm 16 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 129u + Opcode = Opcode.OR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp1 OpRegMem + Operands = [| RM 32; Imm 32 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 129u + Opcode = Opcode.OR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp1 OpRegMem + Operands = [| RM 64; Imm 32 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 129u + Opcode = Opcode.SBB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp3 OpRegMem + Operands = [| RM 16; Imm 16 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 129u + Opcode = Opcode.SBB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp3 OpRegMem + Operands = [| RM 32; Imm 32 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 129u + Opcode = Opcode.SBB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp3 OpRegMem + Operands = [| RM 64; Imm 32 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 129u + Opcode = Opcode.SUB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp5 OpRegMem + Operands = [| RM 16; Imm 16 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 129u + Opcode = Opcode.SUB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp5 OpRegMem + Operands = [| RM 32; Imm 32 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 129u + Opcode = Opcode.SUB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp5 OpRegMem + Operands = [| RM 64; Imm 32 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 129u + Opcode = Opcode.XOR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp6 OpRegMem + Operands = [| RM 16; Imm 16 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 129u + Opcode = Opcode.XOR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp6 OpRegMem + Operands = [| RM 32; Imm 32 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 129u + Opcode = Opcode.XOR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp6 OpRegMem + Operands = [| RM 64; Imm 32 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 130(0x82) + |] + [| // index 131(0x83) + { OpcodeByte = 131u + Opcode = Opcode.ADC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| RM 16; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 131u + Opcode = Opcode.ADC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| RM 32; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 131u + Opcode = Opcode.ADC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| RM 64; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 131u + Opcode = Opcode.ADD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpRegMem + Operands = [| RM 16; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 131u + Opcode = Opcode.ADD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpRegMem + Operands = [| RM 32; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 131u + Opcode = Opcode.ADD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpRegMem + Operands = [| RM 64; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 131u + Opcode = Opcode.AND + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| RM 16; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 131u + Opcode = Opcode.AND + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| RM 32; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 131u + Opcode = Opcode.AND + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| RM 64; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 131u + Opcode = Opcode.CMP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp7 OpRegMem + Operands = [| RM 16; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 131u + Opcode = Opcode.CMP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp7 OpRegMem + Operands = [| RM 32; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 131u + Opcode = Opcode.CMP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp7 OpRegMem + Operands = [| RM 64; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 131u + Opcode = Opcode.OR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp1 OpRegMem + Operands = [| RM 16; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 131u + Opcode = Opcode.OR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp1 OpRegMem + Operands = [| RM 32; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 131u + Opcode = Opcode.OR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp1 OpRegMem + Operands = [| RM 64; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 131u + Opcode = Opcode.SBB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp3 OpRegMem + Operands = [| RM 16; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 131u + Opcode = Opcode.SBB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp3 OpRegMem + Operands = [| RM 32; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 131u + Opcode = Opcode.SBB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp3 OpRegMem + Operands = [| RM 64; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 131u + Opcode = Opcode.SUB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp5 OpRegMem + Operands = [| RM 16; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 131u + Opcode = Opcode.SUB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp5 OpRegMem + Operands = [| RM 32; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 131u + Opcode = Opcode.SUB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp5 OpRegMem + Operands = [| RM 64; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 131u + Opcode = Opcode.XOR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp6 OpRegMem + Operands = [| RM 16; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 131u + Opcode = Opcode.XOR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp6 OpRegMem + Operands = [| RM 32; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 131u + Opcode = Opcode.XOR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp6 OpRegMem + Operands = [| RM 64; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 132(0x84) + { OpcodeByte = 132u + Opcode = Opcode.TEST + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 8; Reg(8, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 133(0x85) + { OpcodeByte = 133u + Opcode = Opcode.TEST + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 16; Reg(16, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 133u + Opcode = Opcode.TEST + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 32; Reg(32, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 133u + Opcode = Opcode.TEST + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 64; Reg(64, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 134(0x86) + { OpcodeByte = 134u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 8; Reg(8, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 134u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(8, RegBit); RM 8 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 135(0x87) + { OpcodeByte = 135u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 16; Reg(16, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 135u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 135u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 32; Reg(32, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 135u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 64; Reg(64, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 135u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 135u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 136(0x88) + { OpcodeByte = 136u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 8; Reg(8, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 137(0x89) + { OpcodeByte = 137u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 16; Reg(16, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 137u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 32; Reg(32, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 137u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 64; Reg(64, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 138(0x8A) + { OpcodeByte = 138u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(8, RegBit); RM 8 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 139(0x8B) + { OpcodeByte = 139u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 139u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 139u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 140(0x8C) + { OpcodeByte = 140u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 16; Sreg |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 140u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RMdiff(32, 16); Sreg |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 140u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RMdiff(64, 16); Sreg |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 141(0x8D) + { OpcodeByte = 141u + Opcode = Opcode.LEA + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); Mem 0 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 141u + Opcode = Opcode.LEA + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); Mem 0 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 141u + Opcode = Opcode.LEA + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); Mem 0 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 142(0x8E) + { OpcodeByte = 142u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Sreg; RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 142u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Sreg; RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 143(0x8F) + { OpcodeByte = 143u + Opcode = Opcode.POP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpRegMem + Operands = [| RM 16 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 143u + Opcode = Opcode.POP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpRegMem + Operands = [| RM 32 |] + OpEn = OpEn.M + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 143u + Opcode = Opcode.POP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpRegMem + Operands = [| RM 64 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 144(0x90) + { OpcodeByte = 144u + Opcode = Opcode.NOP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 144u + Opcode = Opcode.PAUSE + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 144u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.AX); Reg(16, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 144u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(16, Unused); FixedReg(Register.AX) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 144u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.EAX); Reg(32, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 144u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.RAX); Reg(64, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 144u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, Unused); FixedReg(Register.EAX) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 144u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(64, Unused); FixedReg(Register.RAX) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 145(0x91) + { OpcodeByte = 145u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.AX); Reg(16, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 145u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(16, Unused); FixedReg(Register.AX) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 145u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.EAX); Reg(32, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 145u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.RAX); Reg(64, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 145u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, Unused); FixedReg(Register.EAX) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 145u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(64, Unused); FixedReg(Register.RAX) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 146(0x92) + { OpcodeByte = 146u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.AX); Reg(16, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 146u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(16, Unused); FixedReg(Register.AX) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 146u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.EAX); Reg(32, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 146u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.RAX); Reg(64, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 146u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, Unused); FixedReg(Register.EAX) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 146u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(64, Unused); FixedReg(Register.RAX) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 147(0x93) + { OpcodeByte = 147u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.AX); Reg(16, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 147u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(16, Unused); FixedReg(Register.AX) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 147u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.EAX); Reg(32, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 147u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.RAX); Reg(64, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 147u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, Unused); FixedReg(Register.EAX) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 147u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(64, Unused); FixedReg(Register.RAX) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 148(0x94) + { OpcodeByte = 148u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.AX); Reg(16, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 148u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(16, Unused); FixedReg(Register.AX) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 148u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.EAX); Reg(32, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 148u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.RAX); Reg(64, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 148u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, Unused); FixedReg(Register.EAX) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 148u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(64, Unused); FixedReg(Register.RAX) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 149(0x95) + { OpcodeByte = 149u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.AX); Reg(16, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 149u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(16, Unused); FixedReg(Register.AX) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 149u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.EAX); Reg(32, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 149u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.RAX); Reg(64, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 149u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, Unused); FixedReg(Register.EAX) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 149u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(64, Unused); FixedReg(Register.RAX) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 150(0x96) + { OpcodeByte = 150u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.AX); Reg(16, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 150u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(16, Unused); FixedReg(Register.AX) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 150u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.EAX); Reg(32, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 150u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.RAX); Reg(64, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 150u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, Unused); FixedReg(Register.EAX) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 150u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(64, Unused); FixedReg(Register.RAX) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 151(0x97) + { OpcodeByte = 151u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.AX); Reg(16, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 151u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(16, Unused); FixedReg(Register.AX) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 151u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.EAX); Reg(32, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 151u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.RAX); Reg(64, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 151u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, Unused); FixedReg(Register.EAX) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 151u + Opcode = Opcode.XCHG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(64, Unused); FixedReg(Register.RAX) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 152(0x98) + { OpcodeByte = 152u + Opcode = Opcode.CBW + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 152u + Opcode = Opcode.CWDE + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 152u + Opcode = Opcode.CDQE + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 153(0x99) + { OpcodeByte = 153u + Opcode = Opcode.CWD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 153u + Opcode = Opcode.CDQ + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 153u + Opcode = Opcode.CQO + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 154(0x9A) + { OpcodeByte = 154u + Opcode = Opcode.CALL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Far 16 |] + OpEn = OpEn.D + Mode64 = Mode64.Invalid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 154u + Opcode = Opcode.CALL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Far 32 |] + OpEn = OpEn.D + Mode64 = Mode64.Invalid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 155(0x9B) + { OpcodeByte = 155u + Opcode = Opcode.WAIT + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 155u + Opcode = Opcode.FWAIT + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 156(0x9C) + { OpcodeByte = 156u + Opcode = Opcode.PUSHF + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 156u + Opcode = Opcode.PUSHFD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 156u + Opcode = Opcode.PUSHFQ + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 157(0x9D) + { OpcodeByte = 157u + Opcode = Opcode.POPF + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 157u + Opcode = Opcode.POPFD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 157u + Opcode = Opcode.POPFQ + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 158(0x9E) + { OpcodeByte = 158u + Opcode = Opcode.SAHF + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 159(0x9F) + { OpcodeByte = 159u + Opcode = Opcode.LAHF + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 160(0xA0) + { OpcodeByte = 160u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.AL); Moffs 8 |] + OpEn = OpEn.FD + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 160u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.AL); Moffs 8 |] + OpEn = OpEn.FD + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 161(0xA1) + { OpcodeByte = 161u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.AX); Moffs 16 |] + OpEn = OpEn.FD + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 161u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.EAX); Moffs 32 |] + OpEn = OpEn.FD + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 161u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.RAX); Moffs 64 |] + OpEn = OpEn.FD + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 162(0xA2) + { OpcodeByte = 162u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Moffs 8; FixedReg(Register.AL) |] + OpEn = OpEn.TD + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 162u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Moffs 8; FixedReg(Register.AL) |] + OpEn = OpEn.TD + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 163(0xA3) + { OpcodeByte = 163u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Moffs 16; FixedReg(Register.AX) |] + OpEn = OpEn.TD + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 163u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Moffs 32; FixedReg(Register.EAX) |] + OpEn = OpEn.TD + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 163u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Moffs 64; FixedReg(Register.RAX) |] + OpEn = OpEn.TD + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 164(0xA4) + { OpcodeByte = 164u + Opcode = Opcode.MOVSB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 165(0xA5) + { OpcodeByte = 165u + Opcode = Opcode.MOVSW + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 165u + Opcode = Opcode.MOVSD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 165u + Opcode = Opcode.MOVSQ + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 166(0xA6) + { OpcodeByte = 166u + Opcode = Opcode.CMPSB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 167(0xA7) + { OpcodeByte = 167u + Opcode = Opcode.CMPSW + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 167u + Opcode = Opcode.CMPSD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 167u + Opcode = Opcode.CMPSQ + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 168(0xA8) + { OpcodeByte = 168u + Opcode = Opcode.TEST + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.AL); Imm 8 |] + OpEn = OpEn.I + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 169(0xA9) + { OpcodeByte = 169u + Opcode = Opcode.TEST + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.AX); Imm 16 |] + OpEn = OpEn.I + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 169u + Opcode = Opcode.TEST + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.EAX); Imm 32 |] + OpEn = OpEn.I + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 169u + Opcode = Opcode.TEST + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.RAX); Imm 32 |] + OpEn = OpEn.I + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 170(0xAA) + { OpcodeByte = 170u + Opcode = Opcode.STOSB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 171(0xAB) + { OpcodeByte = 171u + Opcode = Opcode.STOSW + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 171u + Opcode = Opcode.STOSD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 171u + Opcode = Opcode.STOSQ + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 172(0xAC) + { OpcodeByte = 172u + Opcode = Opcode.LODSB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 173(0xAD) + { OpcodeByte = 173u + Opcode = Opcode.LODSW + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 173u + Opcode = Opcode.LODSD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 173u + Opcode = Opcode.LODSQ + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 174(0xAE) + { OpcodeByte = 174u + Opcode = Opcode.SCASB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 175(0xAF) + { OpcodeByte = 175u + Opcode = Opcode.SCASW + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 175u + Opcode = Opcode.SCASD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 175u + Opcode = Opcode.SCASQ + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 176(0xB0) + { OpcodeByte = 176u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(8, OpRd); Imm 8 |] + OpEn = OpEn.OI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 177(0xB1) + { OpcodeByte = 177u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(8, OpRd); Imm 8 |] + OpEn = OpEn.OI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 178(0xB2) + { OpcodeByte = 178u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(8, OpRd); Imm 8 |] + OpEn = OpEn.OI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 179(0xB3) + { OpcodeByte = 179u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(8, OpRd); Imm 8 |] + OpEn = OpEn.OI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 180(0xB4) + { OpcodeByte = 180u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(8, OpRd); Imm 8 |] + OpEn = OpEn.OI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 181(0xB5) + { OpcodeByte = 181u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(8, OpRd); Imm 8 |] + OpEn = OpEn.OI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 182(0xB6) + { OpcodeByte = 182u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(8, OpRd); Imm 8 |] + OpEn = OpEn.OI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 183(0xB7) + { OpcodeByte = 183u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(8, OpRd); Imm 8 |] + OpEn = OpEn.OI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 184(0xB8) + { OpcodeByte = 184u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(16, OpRd); Imm 16 |] + OpEn = OpEn.OI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 184u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, OpRd); Imm 32 |] + OpEn = OpEn.OI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 184u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(64, OpRd); Imm 64 |] + OpEn = OpEn.OI + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 185(0xB9) + { OpcodeByte = 185u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(16, OpRd); Imm 16 |] + OpEn = OpEn.OI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 185u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, OpRd); Imm 32 |] + OpEn = OpEn.OI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 185u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(64, OpRd); Imm 64 |] + OpEn = OpEn.OI + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 186(0xBA) + { OpcodeByte = 186u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(16, OpRd); Imm 16 |] + OpEn = OpEn.OI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 186u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, OpRd); Imm 32 |] + OpEn = OpEn.OI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 186u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(64, OpRd); Imm 64 |] + OpEn = OpEn.OI + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 187(0xBB) + { OpcodeByte = 187u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(16, OpRd); Imm 16 |] + OpEn = OpEn.OI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 187u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, OpRd); Imm 32 |] + OpEn = OpEn.OI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 187u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(64, OpRd); Imm 64 |] + OpEn = OpEn.OI + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 188(0xBC) + { OpcodeByte = 188u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(16, OpRd); Imm 16 |] + OpEn = OpEn.OI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 188u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, OpRd); Imm 32 |] + OpEn = OpEn.OI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 188u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(64, OpRd); Imm 64 |] + OpEn = OpEn.OI + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 189(0xBD) + { OpcodeByte = 189u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(16, OpRd); Imm 16 |] + OpEn = OpEn.OI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 189u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, OpRd); Imm 32 |] + OpEn = OpEn.OI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 189u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(64, OpRd); Imm 64 |] + OpEn = OpEn.OI + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 190(0xBE) + { OpcodeByte = 190u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(16, OpRd); Imm 16 |] + OpEn = OpEn.OI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 190u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, OpRd); Imm 32 |] + OpEn = OpEn.OI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 190u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(64, OpRd); Imm 64 |] + OpEn = OpEn.OI + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 191(0xBF) + { OpcodeByte = 191u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(16, OpRd); Imm 16 |] + OpEn = OpEn.OI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 191u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, OpRd); Imm 32 |] + OpEn = OpEn.OI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 191u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(64, OpRd); Imm 64 |] + OpEn = OpEn.OI + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 192(0xC0) + { OpcodeByte = 192u + Opcode = Opcode.RCL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| RM 8; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 192u + Opcode = Opcode.RCR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp3 OpRegMem + Operands = [| RM 8; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 192u + Opcode = Opcode.ROL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpRegMem + Operands = [| RM 8; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 192u + Opcode = Opcode.ROR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp1 OpRegMem + Operands = [| RM 8; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 192u + Opcode = Opcode.SAL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| RM 8; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 192u + Opcode = Opcode.SAR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp7 OpRegMem + Operands = [| RM 8; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 192u + Opcode = Opcode.SHL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| RM 8; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 192u + Opcode = Opcode.SHR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp5 OpRegMem + Operands = [| RM 8; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 193(0xC1) + { OpcodeByte = 193u + Opcode = Opcode.RCL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| RM 16; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 193u + Opcode = Opcode.RCL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| RM 32; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 193u + Opcode = Opcode.RCL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| RM 64; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 193u + Opcode = Opcode.RCR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp3 OpRegMem + Operands = [| RM 16; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 193u + Opcode = Opcode.RCR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp3 OpRegMem + Operands = [| RM 32; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 193u + Opcode = Opcode.RCR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp3 OpRegMem + Operands = [| RM 64; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 193u + Opcode = Opcode.ROL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpRegMem + Operands = [| RM 16; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 193u + Opcode = Opcode.ROL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpRegMem + Operands = [| RM 32; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 193u + Opcode = Opcode.ROL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpRegMem + Operands = [| RM 64; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 193u + Opcode = Opcode.ROR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp1 OpRegMem + Operands = [| RM 16; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 193u + Opcode = Opcode.ROR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp1 OpRegMem + Operands = [| RM 32; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 193u + Opcode = Opcode.ROR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp1 OpRegMem + Operands = [| RM 64; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 193u + Opcode = Opcode.SAL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| RM 16; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 193u + Opcode = Opcode.SAL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| RM 32; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 193u + Opcode = Opcode.SAL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| RM 64; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 193u + Opcode = Opcode.SAR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp7 OpRegMem + Operands = [| RM 16; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 193u + Opcode = Opcode.SAR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp7 OpRegMem + Operands = [| RM 32; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 193u + Opcode = Opcode.SAR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp7 OpRegMem + Operands = [| RM 64; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 193u + Opcode = Opcode.SHL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| RM 16; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 193u + Opcode = Opcode.SHL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| RM 32; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 193u + Opcode = Opcode.SHL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| RM 64; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 193u + Opcode = Opcode.SHR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp5 OpRegMem + Operands = [| RM 16; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 193u + Opcode = Opcode.SHR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp5 OpRegMem + Operands = [| RM 32; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 193u + Opcode = Opcode.SHR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp5 OpRegMem + Operands = [| RM 64; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 194(0xC2) + { OpcodeByte = 194u + Opcode = Opcode.RET + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Imm 16 |] + OpEn = OpEn.I + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 195(0xC3) + { OpcodeByte = 195u + Opcode = Opcode.RET + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 196(0xC4) + { OpcodeByte = 196u + Opcode = Opcode.LES + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); Mem 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Invalid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 196u + Opcode = Opcode.LES + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); Mem 48 |] + OpEn = OpEn.RM + Mode64 = Mode64.Invalid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 197(0xC5) + { OpcodeByte = 197u + Opcode = Opcode.LDS + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); Mem 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Invalid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 197u + Opcode = Opcode.LDS + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); Mem 48 |] + OpEn = OpEn.RM + Mode64 = Mode64.Invalid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 198(0xC6) + { OpcodeByte = 198u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpRegMem + Operands = [| RM 8; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 198u + Opcode = Opcode.XABORT + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xF8uy + Operands = [| Imm 8 |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 199(0xC7) + { OpcodeByte = 199u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpRegMem + Operands = [| RM 16; Imm 16 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 199u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpRegMem + Operands = [| RM 32; Imm 32 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 199u + Opcode = Opcode.MOV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpRegMem + Operands = [| RM 64; Imm 32 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 199u + Opcode = Opcode.XBEGIN + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xF8uy + Operands = [| Rel 16 |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 199u + Opcode = Opcode.XBEGIN + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xF8uy + Operands = [| Rel 32 |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 200(0xC8) + { OpcodeByte = 200u + Opcode = Opcode.ENTER + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Imm 16; Imm 8 |] + OpEn = OpEn.II + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 201(0xC9) + { OpcodeByte = 201u + Opcode = Opcode.LEAVE + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 201u + Opcode = Opcode.LEAVE + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 201u + Opcode = Opcode.LEAVE + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 202(0xCA) + { OpcodeByte = 202u + Opcode = Opcode.RET + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Imm 16 |] + OpEn = OpEn.I + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 203(0xCB) + { OpcodeByte = 203u + Opcode = Opcode.RET + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 204(0xCC) + { OpcodeByte = 204u + Opcode = Opcode.INT3 + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 205(0xCD) + { OpcodeByte = 205u + Opcode = Opcode.INT + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Imm 8 |] + OpEn = OpEn.I + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 206(0xCE) + { OpcodeByte = 206u + Opcode = Opcode.INTO + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Invalid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 207(0xCF) + { OpcodeByte = 207u + Opcode = Opcode.IRET + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 207u + Opcode = Opcode.IRETD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 207u + Opcode = Opcode.IRETQ + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 208(0xD0) + { OpcodeByte = 208u + Opcode = Opcode.RCL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| RM 8; FixedImm 1 |] + OpEn = OpEn.M1 + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 208u + Opcode = Opcode.RCR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp3 OpRegMem + Operands = [| RM 8; FixedImm 1 |] + OpEn = OpEn.M1 + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 208u + Opcode = Opcode.ROL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpRegMem + Operands = [| RM 8; FixedImm 1 |] + OpEn = OpEn.M1 + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 208u + Opcode = Opcode.ROR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp1 OpRegMem + Operands = [| RM 8; FixedImm 1 |] + OpEn = OpEn.M1 + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 208u + Opcode = Opcode.SAL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| RM 8; FixedImm 1 |] + OpEn = OpEn.M1 + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 208u + Opcode = Opcode.SAR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp7 OpRegMem + Operands = [| RM 8; FixedImm 1 |] + OpEn = OpEn.M1 + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 208u + Opcode = Opcode.SHL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| RM 8; FixedImm 1 |] + OpEn = OpEn.M1 + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 208u + Opcode = Opcode.SHR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp5 OpRegMem + Operands = [| RM 8; FixedImm 1 |] + OpEn = OpEn.M1 + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 209(0xD1) + { OpcodeByte = 209u + Opcode = Opcode.RCL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| RM 16; FixedImm 1 |] + OpEn = OpEn.M1 + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 209u + Opcode = Opcode.RCL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| RM 32; FixedImm 1 |] + OpEn = OpEn.M1 + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 209u + Opcode = Opcode.RCL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| RM 64; FixedImm 1 |] + OpEn = OpEn.M1 + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 209u + Opcode = Opcode.RCR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp3 OpRegMem + Operands = [| RM 16; FixedImm 1 |] + OpEn = OpEn.M1 + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 209u + Opcode = Opcode.RCR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp3 OpRegMem + Operands = [| RM 32; FixedImm 1 |] + OpEn = OpEn.M1 + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 209u + Opcode = Opcode.RCR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp3 OpRegMem + Operands = [| RM 64; FixedImm 1 |] + OpEn = OpEn.M1 + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 209u + Opcode = Opcode.ROL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpRegMem + Operands = [| RM 16; FixedImm 1 |] + OpEn = OpEn.M1 + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 209u + Opcode = Opcode.ROL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpRegMem + Operands = [| RM 32; FixedImm 1 |] + OpEn = OpEn.M1 + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 209u + Opcode = Opcode.ROL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpRegMem + Operands = [| RM 64; FixedImm 1 |] + OpEn = OpEn.M1 + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 209u + Opcode = Opcode.ROR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp1 OpRegMem + Operands = [| RM 16; FixedImm 1 |] + OpEn = OpEn.M1 + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 209u + Opcode = Opcode.ROR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp1 OpRegMem + Operands = [| RM 32; FixedImm 1 |] + OpEn = OpEn.M1 + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 209u + Opcode = Opcode.ROR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp1 OpRegMem + Operands = [| RM 64; FixedImm 1 |] + OpEn = OpEn.M1 + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 209u + Opcode = Opcode.SAL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| RM 16; FixedImm 1 |] + OpEn = OpEn.M1 + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 209u + Opcode = Opcode.SAL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| RM 32; FixedImm 1 |] + OpEn = OpEn.M1 + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 209u + Opcode = Opcode.SAL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| RM 64; FixedImm 1 |] + OpEn = OpEn.M1 + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 209u + Opcode = Opcode.SAR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp7 OpRegMem + Operands = [| RM 16; FixedImm 1 |] + OpEn = OpEn.M1 + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 209u + Opcode = Opcode.SAR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp7 OpRegMem + Operands = [| RM 32; FixedImm 1 |] + OpEn = OpEn.M1 + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 209u + Opcode = Opcode.SAR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp7 OpRegMem + Operands = [| RM 64; FixedImm 1 |] + OpEn = OpEn.M1 + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 209u + Opcode = Opcode.SHL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| RM 16; FixedImm 1 |] + OpEn = OpEn.M1 + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 209u + Opcode = Opcode.SHL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| RM 32; FixedImm 1 |] + OpEn = OpEn.M1 + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 209u + Opcode = Opcode.SHL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| RM 64; FixedImm 1 |] + OpEn = OpEn.M1 + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 209u + Opcode = Opcode.SHR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp5 OpRegMem + Operands = [| RM 16; FixedImm 1 |] + OpEn = OpEn.M1 + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 209u + Opcode = Opcode.SHR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp5 OpRegMem + Operands = [| RM 32; FixedImm 1 |] + OpEn = OpEn.M1 + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 209u + Opcode = Opcode.SHR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp5 OpRegMem + Operands = [| RM 64; FixedImm 1 |] + OpEn = OpEn.M1 + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 210(0xD2) + { OpcodeByte = 210u + Opcode = Opcode.RCL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| RM 8; FixedReg(Register.CL) |] + OpEn = OpEn.MC + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 210u + Opcode = Opcode.RCR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp3 OpRegMem + Operands = [| RM 8; FixedReg(Register.CL) |] + OpEn = OpEn.MC + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 210u + Opcode = Opcode.ROL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpRegMem + Operands = [| RM 8; FixedReg(Register.CL) |] + OpEn = OpEn.MC + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 210u + Opcode = Opcode.ROR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp1 OpRegMem + Operands = [| RM 8; FixedReg(Register.CL) |] + OpEn = OpEn.MC + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 210u + Opcode = Opcode.SAL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| RM 8; FixedReg(Register.CL) |] + OpEn = OpEn.MC + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 210u + Opcode = Opcode.SAR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp7 OpRegMem + Operands = [| RM 8; FixedReg(Register.CL) |] + OpEn = OpEn.MC + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 210u + Opcode = Opcode.SHL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| RM 8; FixedReg(Register.CL) |] + OpEn = OpEn.MC + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 210u + Opcode = Opcode.SHR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp5 OpRegMem + Operands = [| RM 8; FixedReg(Register.CL) |] + OpEn = OpEn.MC + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 211(0xD3) + { OpcodeByte = 211u + Opcode = Opcode.RCL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| RM 16; FixedReg(Register.CL) |] + OpEn = OpEn.MC + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 211u + Opcode = Opcode.RCL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| RM 32; FixedReg(Register.CL) |] + OpEn = OpEn.MC + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 211u + Opcode = Opcode.RCL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| RM 64; FixedReg(Register.CL) |] + OpEn = OpEn.MC + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 211u + Opcode = Opcode.RCR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp3 OpRegMem + Operands = [| RM 16; FixedReg(Register.CL) |] + OpEn = OpEn.MC + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 211u + Opcode = Opcode.RCR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp3 OpRegMem + Operands = [| RM 32; FixedReg(Register.CL) |] + OpEn = OpEn.MC + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 211u + Opcode = Opcode.RCR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp3 OpRegMem + Operands = [| RM 64; FixedReg(Register.CL) |] + OpEn = OpEn.MC + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 211u + Opcode = Opcode.ROL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpRegMem + Operands = [| RM 16; FixedReg(Register.CL) |] + OpEn = OpEn.MC + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 211u + Opcode = Opcode.ROL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpRegMem + Operands = [| RM 32; FixedReg(Register.CL) |] + OpEn = OpEn.MC + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 211u + Opcode = Opcode.ROL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpRegMem + Operands = [| RM 64; FixedReg(Register.CL) |] + OpEn = OpEn.MC + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 211u + Opcode = Opcode.ROR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp1 OpRegMem + Operands = [| RM 16; FixedReg(Register.CL) |] + OpEn = OpEn.MC + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 211u + Opcode = Opcode.ROR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp1 OpRegMem + Operands = [| RM 32; FixedReg(Register.CL) |] + OpEn = OpEn.MC + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 211u + Opcode = Opcode.ROR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp1 OpRegMem + Operands = [| RM 64; FixedReg(Register.CL) |] + OpEn = OpEn.MC + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 211u + Opcode = Opcode.SAL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| RM 16; FixedReg(Register.CL) |] + OpEn = OpEn.MC + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 211u + Opcode = Opcode.SAL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| RM 32; FixedReg(Register.CL) |] + OpEn = OpEn.MC + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 211u + Opcode = Opcode.SAL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| RM 64; FixedReg(Register.CL) |] + OpEn = OpEn.MC + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 211u + Opcode = Opcode.SAR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp7 OpRegMem + Operands = [| RM 16; FixedReg(Register.CL) |] + OpEn = OpEn.MC + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 211u + Opcode = Opcode.SAR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp7 OpRegMem + Operands = [| RM 32; FixedReg(Register.CL) |] + OpEn = OpEn.MC + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 211u + Opcode = Opcode.SAR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp7 OpRegMem + Operands = [| RM 64; FixedReg(Register.CL) |] + OpEn = OpEn.MC + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 211u + Opcode = Opcode.SHL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| RM 16; FixedReg(Register.CL) |] + OpEn = OpEn.MC + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 211u + Opcode = Opcode.SHL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| RM 32; FixedReg(Register.CL) |] + OpEn = OpEn.MC + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 211u + Opcode = Opcode.SHL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| RM 64; FixedReg(Register.CL) |] + OpEn = OpEn.MC + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 211u + Opcode = Opcode.SHR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp5 OpRegMem + Operands = [| RM 16; FixedReg(Register.CL) |] + OpEn = OpEn.MC + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 211u + Opcode = Opcode.SHR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp5 OpRegMem + Operands = [| RM 32; FixedReg(Register.CL) |] + OpEn = OpEn.MC + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 211u + Opcode = Opcode.SHR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp5 OpRegMem + Operands = [| RM 64; FixedReg(Register.CL) |] + OpEn = OpEn.MC + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 212(0xD4) + { OpcodeByte = 212u + Opcode = Opcode.AAM + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0x0Auy + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Invalid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 212u + Opcode = Opcode.AAM + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Imm 8 |] + OpEn = OpEn.ZO + Mode64 = Mode64.Invalid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 213(0xD5) + { OpcodeByte = 213u + Opcode = Opcode.AAD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0x0Auy + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Invalid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 213u + Opcode = Opcode.AAD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Imm 8 |] + OpEn = OpEn.ZO + Mode64 = Mode64.Invalid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 214(0xD6) + { OpcodeByte = 214u + Opcode = Opcode.UDB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 215(0xD7) + { OpcodeByte = 215u + Opcode = Opcode.XLATB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 215u + Opcode = Opcode.XLATB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 216(0xD8) + { OpcodeByte = 216u + Opcode = Opcode.FADD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpMem + Operands = [| Mem 32 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 216u + Opcode = Opcode.FADD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.STiModRM 0xC0uy + Operands = [| STReg(Some Register.ST0); STReg None |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 216u + Opcode = Opcode.FCOM + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp2 OpMem + Operands = [| Mem 32 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 216u + Opcode = Opcode.FCOM + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.STiModRM 0xD0uy + Operands = [| STReg None |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 216u + Opcode = Opcode.FCOM + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xD1uy + Operands = [| NoOpr |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 216u + Opcode = Opcode.FCOMP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp3 OpMem + Operands = [| Mem 32 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 216u + Opcode = Opcode.FCOMP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.STiModRM 0xD8uy + Operands = [| STReg None |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 216u + Opcode = Opcode.FCOMP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xD9uy + Operands = [| NoOpr |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 216u + Opcode = Opcode.FDIV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp6 OpMem + Operands = [| Mem 32 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 216u + Opcode = Opcode.FDIV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.STiModRM 0xF0uy + Operands = [| STReg(Some Register.ST0); STReg None |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 216u + Opcode = Opcode.FDIVR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp7 OpMem + Operands = [| Mem 32 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 216u + Opcode = Opcode.FDIVR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.STiModRM 0xF8uy + Operands = [| STReg(Some Register.ST0); STReg None |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 216u + Opcode = Opcode.FMUL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp1 OpMem + Operands = [| Mem 32 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 216u + Opcode = Opcode.FMUL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.STiModRM 0xC8uy + Operands = [| STReg(Some Register.ST0); STReg None |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 216u + Opcode = Opcode.FSUB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpMem + Operands = [| Mem 32 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 216u + Opcode = Opcode.FSUB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.STiModRM 0xE0uy + Operands = [| STReg(Some Register.ST0); STReg None |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 216u + Opcode = Opcode.FSUBR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp5 OpMem + Operands = [| Mem 32 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 216u + Opcode = Opcode.FSUBR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.STiModRM 0xE8uy + Operands = [| STReg(Some Register.ST0); STReg None |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 217(0xD9) + { OpcodeByte = 217u + Opcode = Opcode.F2XM1 + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xF0uy + Operands = [| NoOpr |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 217u + Opcode = Opcode.FABS + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xE1uy + Operands = [| NoOpr |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 217u + Opcode = Opcode.FCHS + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xE0uy + Operands = [| NoOpr |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 217u + Opcode = Opcode.FCOS + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xFFuy + Operands = [| NoOpr |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 217u + Opcode = Opcode.FDECSTP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xF6uy + Operands = [| NoOpr |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 217u + Opcode = Opcode.FINCSTP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xF7uy + Operands = [| NoOpr |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 217u + Opcode = Opcode.FLD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpMem + Operands = [| Mem 32 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 217u + Opcode = Opcode.FLD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.STiModRM 0xC0uy + Operands = [| STReg None |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 217u + Opcode = Opcode.FLD1 + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xE8uy + Operands = [| NoOpr |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 217u + Opcode = Opcode.FLDL2T + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xE9uy + Operands = [| NoOpr |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 217u + Opcode = Opcode.FLDL2E + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xEAuy + Operands = [| NoOpr |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 217u + Opcode = Opcode.FLDPI + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xEBuy + Operands = [| NoOpr |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 217u + Opcode = Opcode.FLDLG2 + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xECuy + Operands = [| NoOpr |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 217u + Opcode = Opcode.FLDLN2 + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xEDuy + Operands = [| NoOpr |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 217u + Opcode = Opcode.FLDZ + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xEEuy + Operands = [| NoOpr |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 217u + Opcode = Opcode.FLDCW + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp5 OpMem + Operands = [| Mem 16 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 217u + Opcode = Opcode.FLDENV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpMem + Operands = [| Mem 0 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 217u + Opcode = Opcode.FNOP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xD0uy + Operands = [| NoOpr |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 217u + Opcode = Opcode.FPREM + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xF8uy + Operands = [| NoOpr |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 217u + Opcode = Opcode.FPREM1 + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xF5uy + Operands = [| NoOpr |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 217u + Opcode = Opcode.FRNDINT + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xFCuy + Operands = [| NoOpr |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 217u + Opcode = Opcode.FSCALE + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xFDuy + Operands = [| NoOpr |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 217u + Opcode = Opcode.FSIN + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xFEuy + Operands = [| NoOpr |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 217u + Opcode = Opcode.FSINCOS + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xFBuy + Operands = [| NoOpr |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 217u + Opcode = Opcode.FSQRT + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xFAuy + Operands = [| NoOpr |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 217u + Opcode = Opcode.FST + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp2 OpMem + Operands = [| Mem 32 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 217u + Opcode = Opcode.FSTP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp3 OpMem + Operands = [| Mem 32 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 217u + Opcode = Opcode.FNSTCW + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp7 OpMem + Operands = [| Mem 16 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 217u + Opcode = Opcode.FNSTENV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp6 OpMem + Operands = [| Mem 0 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 217u + Opcode = Opcode.FTST + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xE4uy + Operands = [| NoOpr |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 217u + Opcode = Opcode.FXAM + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xE5uy + Operands = [| NoOpr |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 217u + Opcode = Opcode.FXCH + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.STiModRM 0xC8uy + Operands = [| STReg None |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 217u + Opcode = Opcode.FXCH + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xC9uy + Operands = [| NoOpr |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 217u + Opcode = Opcode.FXTRACT + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xF4uy + Operands = [| NoOpr |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 217u + Opcode = Opcode.FYL2X + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xF1uy + Operands = [| NoOpr |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 217u + Opcode = Opcode.FYL2XP1 + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xF9uy + Operands = [| NoOpr |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 218(0xDA) + { OpcodeByte = 218u + Opcode = Opcode.FIADD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpMem + Operands = [| Mem 32 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 218u + Opcode = Opcode.FCMOVB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.STiModRM 0xC0uy + Operands = [| STReg(Some Register.ST0); STReg None |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 218u + Opcode = Opcode.FCMOVE + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.STiModRM 0xC8uy + Operands = [| STReg(Some Register.ST0); STReg None |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 218u + Opcode = Opcode.FCMOVBE + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.STiModRM 0xD0uy + Operands = [| STReg(Some Register.ST0); STReg None |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 218u + Opcode = Opcode.FCMOVU + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.STiModRM 0xD8uy + Operands = [| STReg(Some Register.ST0); STReg None |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 218u + Opcode = Opcode.FIDIV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp6 OpMem + Operands = [| Mem 32 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 218u + Opcode = Opcode.FIDIVR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp7 OpMem + Operands = [| Mem 32 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 218u + Opcode = Opcode.FICOM + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp2 OpMem + Operands = [| Mem 32 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 218u + Opcode = Opcode.FICOMP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp3 OpMem + Operands = [| Mem 32 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 218u + Opcode = Opcode.FIMUL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp1 OpMem + Operands = [| Mem 32 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 218u + Opcode = Opcode.FISUB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpMem + Operands = [| Mem 32 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 218u + Opcode = Opcode.FISUBR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp5 OpMem + Operands = [| Mem 32 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 218u + Opcode = Opcode.FUCOMPP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xE9uy + Operands = [| NoOpr |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 219(0xDB) + { OpcodeByte = 219u + Opcode = Opcode.FNCLEX + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xE2uy + Operands = [| NoOpr |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 219u + Opcode = Opcode.FCMOVNB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.STiModRM 0xC0uy + Operands = [| STReg(Some Register.ST0); STReg None |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 219u + Opcode = Opcode.FCMOVNE + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.STiModRM 0xC8uy + Operands = [| STReg(Some Register.ST0); STReg None |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 219u + Opcode = Opcode.FCMOVNBE + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.STiModRM 0xD0uy + Operands = [| STReg(Some Register.ST0); STReg None |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 219u + Opcode = Opcode.FCMOVNU + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.STiModRM 0xD8uy + Operands = [| STReg(Some Register.ST0); STReg None |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 219u + Opcode = Opcode.FCOMI + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.STiModRM 0xF0uy + Operands = [| STReg(Some Register.ST0); STReg None |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 219u + Opcode = Opcode.FUCOMI + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.STiModRM 0xE8uy + Operands = [| STReg(Some Register.ST0); STReg None |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 219u + Opcode = Opcode.FILD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpMem + Operands = [| Mem 32 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 219u + Opcode = Opcode.FNINIT + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xE3uy + Operands = [| NoOpr |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 219u + Opcode = Opcode.FIST + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp2 OpMem + Operands = [| Mem 32 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 219u + Opcode = Opcode.FISTP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp3 OpMem + Operands = [| Mem 32 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 219u + Opcode = Opcode.FISTTP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp1 OpMem + Operands = [| Mem 32 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 219u + Opcode = Opcode.FLD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp5 OpMem + Operands = [| Mem 80 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 219u + Opcode = Opcode.FSTP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp7 OpMem + Operands = [| Mem 80 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 220(0xDC) + { OpcodeByte = 220u + Opcode = Opcode.FADD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpMem + Operands = [| Mem 64 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 220u + Opcode = Opcode.FADD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.STiModRM 0xC0uy + Operands = [| STReg None; STReg(Some Register.ST0) |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 220u + Opcode = Opcode.FCOM + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp2 OpMem + Operands = [| Mem 64 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 220u + Opcode = Opcode.FCOMP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp3 OpMem + Operands = [| Mem 64 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 220u + Opcode = Opcode.FDIV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp6 OpMem + Operands = [| Mem 64 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 220u + Opcode = Opcode.FDIV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.STiModRM 0xF8uy + Operands = [| STReg None; STReg(Some Register.ST0) |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 220u + Opcode = Opcode.FDIVR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp7 OpMem + Operands = [| Mem 64 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 220u + Opcode = Opcode.FDIVR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.STiModRM 0xF0uy + Operands = [| STReg None; STReg(Some Register.ST0) |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 220u + Opcode = Opcode.FMUL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp1 OpMem + Operands = [| Mem 64 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 220u + Opcode = Opcode.FMUL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.STiModRM 0xC8uy + Operands = [| STReg None; STReg(Some Register.ST0) |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 220u + Opcode = Opcode.FSUB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpMem + Operands = [| Mem 64 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 220u + Opcode = Opcode.FSUB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.STiModRM 0xE8uy + Operands = [| STReg None; STReg(Some Register.ST0) |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 220u + Opcode = Opcode.FSUBR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp5 OpMem + Operands = [| Mem 64 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 220u + Opcode = Opcode.FSUBR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.STiModRM 0xE0uy + Operands = [| STReg None; STReg(Some Register.ST0) |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 221(0xDD) + { OpcodeByte = 221u + Opcode = Opcode.FFREE + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.STiModRM 0xC0uy + Operands = [| STReg None |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 221u + Opcode = Opcode.FISTTP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp1 OpMem + Operands = [| Mem 64 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 221u + Opcode = Opcode.FLD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpMem + Operands = [| Mem 64 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 221u + Opcode = Opcode.FRSTOR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpMem + Operands = [| Mem 0 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 221u + Opcode = Opcode.FNSAVE + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp6 OpMem + Operands = [| Mem 0 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 221u + Opcode = Opcode.FST + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp2 OpMem + Operands = [| Mem 64 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 221u + Opcode = Opcode.FST + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.STiModRM 0xD0uy + Operands = [| STReg None |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 221u + Opcode = Opcode.FSTP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp3 OpMem + Operands = [| Mem 64 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 221u + Opcode = Opcode.FSTP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.STiModRM 0xD8uy + Operands = [| STReg None |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 221u + Opcode = Opcode.FNSTSW + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp7 OpMem + Operands = [| Mem 16 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 221u + Opcode = Opcode.FUCOM + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.STiModRM 0xE0uy + Operands = [| STReg None |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 221u + Opcode = Opcode.FUCOM + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xE1uy + Operands = [| NoOpr |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 221u + Opcode = Opcode.FUCOMP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.STiModRM 0xE8uy + Operands = [| STReg None |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 221u + Opcode = Opcode.FUCOMP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xE9uy + Operands = [| NoOpr |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 222(0xDE) + { OpcodeByte = 222u + Opcode = Opcode.FADDP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.STiModRM 0xC0uy + Operands = [| STReg None; STReg(Some Register.ST0) |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 222u + Opcode = Opcode.FADDP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xC1uy + Operands = [| NoOpr |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 222u + Opcode = Opcode.FIADD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpMem + Operands = [| Mem 16 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 222u + Opcode = Opcode.FCOMPP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xD9uy + Operands = [| NoOpr |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 222u + Opcode = Opcode.FDIVP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.STiModRM 0xF8uy + Operands = [| STReg None; STReg(Some Register.ST0) |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 222u + Opcode = Opcode.FDIVP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xF9uy + Operands = [| NoOpr |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 222u + Opcode = Opcode.FIDIV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp6 OpMem + Operands = [| Mem 16 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 222u + Opcode = Opcode.FDIVRP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.STiModRM 0xF0uy + Operands = [| STReg None; STReg(Some Register.ST0) |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 222u + Opcode = Opcode.FDIVRP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xF1uy + Operands = [| NoOpr |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 222u + Opcode = Opcode.FIDIVR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp7 OpMem + Operands = [| Mem 16 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 222u + Opcode = Opcode.FICOM + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp2 OpMem + Operands = [| Mem 16 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 222u + Opcode = Opcode.FICOMP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp3 OpMem + Operands = [| Mem 16 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 222u + Opcode = Opcode.FMULP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.STiModRM 0xC8uy + Operands = [| STReg None; STReg(Some Register.ST0) |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 222u + Opcode = Opcode.FMULP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xC9uy + Operands = [| NoOpr |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 222u + Opcode = Opcode.FIMUL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp1 OpMem + Operands = [| Mem 16 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 222u + Opcode = Opcode.FSUBP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.STiModRM 0xE8uy + Operands = [| STReg None; STReg(Some Register.ST0) |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 222u + Opcode = Opcode.FSUBP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xE9uy + Operands = [| NoOpr |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 222u + Opcode = Opcode.FISUB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpMem + Operands = [| Mem 16 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 222u + Opcode = Opcode.FSUBRP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.STiModRM 0xE0uy + Operands = [| STReg None; STReg(Some Register.ST0) |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 222u + Opcode = Opcode.FSUBRP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xE1uy + Operands = [| NoOpr |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 222u + Opcode = Opcode.FISUBR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp5 OpMem + Operands = [| Mem 16 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 223(0xDF) + { OpcodeByte = 223u + Opcode = Opcode.FBLD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpMem + Operands = [| Mem 80 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 223u + Opcode = Opcode.FBSTP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp6 OpMem + Operands = [| Mem 80 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 223u + Opcode = Opcode.FCOMIP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.STiModRM 0xF0uy + Operands = [| STReg(Some Register.ST0); STReg None |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 223u + Opcode = Opcode.FUCOMIP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.STiModRM 0xE8uy + Operands = [| STReg(Some Register.ST0); STReg None |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 223u + Opcode = Opcode.FILD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpMem + Operands = [| Mem 16 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 223u + Opcode = Opcode.FILD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp5 OpMem + Operands = [| Mem 64 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 223u + Opcode = Opcode.FIST + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp2 OpMem + Operands = [| Mem 16 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 223u + Opcode = Opcode.FISTP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp3 OpMem + Operands = [| Mem 16 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 223u + Opcode = Opcode.FISTP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp7 OpMem + Operands = [| Mem 64 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 223u + Opcode = Opcode.FISTTP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp1 OpMem + Operands = [| Mem 16 |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 223u + Opcode = Opcode.FNSTSW + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xE0uy + Operands = [| FixedReg(Register.AX) |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 224(0xE0) + { OpcodeByte = 224u + Opcode = Opcode.LOOPNE + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 8 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 225(0xE1) + { OpcodeByte = 225u + Opcode = Opcode.LOOPE + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 8 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 226(0xE2) + { OpcodeByte = 226u + Opcode = Opcode.LOOP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 8 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 227(0xE3) + { OpcodeByte = 227u + Opcode = Opcode.JCXZ + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 8 |] + OpEn = OpEn.D + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 227u + Opcode = Opcode.JECXZ + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 8 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 227u + Opcode = Opcode.JRCXZ + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 8 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 228(0xE4) + { OpcodeByte = 228u + Opcode = Opcode.IN + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.AL); Imm 8 |] + OpEn = OpEn.I + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 229(0xE5) + { OpcodeByte = 229u + Opcode = Opcode.IN + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.AX); Imm 8 |] + OpEn = OpEn.I + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 229u + Opcode = Opcode.IN + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.EAX); Imm 8 |] + OpEn = OpEn.I + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 230(0xE6) + { OpcodeByte = 230u + Opcode = Opcode.OUT + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Imm 8; FixedReg(Register.AL) |] + OpEn = OpEn.I + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 231(0xE7) + { OpcodeByte = 231u + Opcode = Opcode.OUT + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Imm 8; FixedReg(Register.AX) |] + OpEn = OpEn.I + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 231u + Opcode = Opcode.OUT + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Imm 8; FixedReg(Register.EAX) |] + OpEn = OpEn.I + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 232(0xE8) + { OpcodeByte = 232u + Opcode = Opcode.CALL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 16 |] + OpEn = OpEn.D + Mode64 = Mode64.NS + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 232u + Opcode = Opcode.CALL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 32 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 233(0xE9) + { OpcodeByte = 233u + Opcode = Opcode.JMP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 16 |] + OpEn = OpEn.D + Mode64 = Mode64.NS + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 233u + Opcode = Opcode.JMP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 32 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 234(0xEA) + { OpcodeByte = 234u + Opcode = Opcode.JMP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Far 16 |] + OpEn = OpEn.S + Mode64 = Mode64.Inv + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 234u + Opcode = Opcode.JMP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Far 32 |] + OpEn = OpEn.S + Mode64 = Mode64.Inv + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 235(0xEB) + { OpcodeByte = 235u + Opcode = Opcode.JMP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 8 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 236(0xEC) + { OpcodeByte = 236u + Opcode = Opcode.IN + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.AL); FixedReg(Register.DX) |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 237(0xED) + { OpcodeByte = 237u + Opcode = Opcode.IN + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.AX); FixedReg(Register.DX) |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 237u + Opcode = Opcode.IN + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.EAX); FixedReg(Register.DX) |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 238(0xEE) + { OpcodeByte = 238u + Opcode = Opcode.OUT + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.DX); FixedReg(Register.AL) |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 239(0xEF) + { OpcodeByte = 239u + Opcode = Opcode.OUT + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.DX); FixedReg(Register.AX) |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 239u + Opcode = Opcode.OUT + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.DX); FixedReg(Register.EAX) |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 240(0xF0) + { OpcodeByte = 240u + Opcode = Opcode.LOCK + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 241(0xF1) + { OpcodeByte = 241u + Opcode = Opcode.INT1 + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 242(0xF2) + { OpcodeByte = 242u + Opcode = Opcode.FPTAN + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 242u + Opcode = Opcode.XACQUIRE + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 243(0xF3) + { OpcodeByte = 243u + Opcode = Opcode.FPATAN + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 243u + Opcode = Opcode.XRELEASE + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.None + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 244(0xF4) + { OpcodeByte = 244u + Opcode = Opcode.HLT + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 245(0xF5) + { OpcodeByte = 245u + Opcode = Opcode.CMC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 246(0xF6) + { OpcodeByte = 246u + Opcode = Opcode.DIV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp6 OpRegMem + Operands = [| RM 8 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 246u + Opcode = Opcode.IDIV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp7 OpRegMem + Operands = [| RM 8 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 246u + Opcode = Opcode.IMUL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp5 OpRegMem + Operands = [| RM 8 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 246u + Opcode = Opcode.MUL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| RM 8 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 246u + Opcode = Opcode.NEG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp3 OpRegMem + Operands = [| RM 8 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 246u + Opcode = Opcode.NOT + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| RM 8 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 246u + Opcode = Opcode.TEST + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpRegMem + Operands = [| RM 8; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 247(0xF7) + { OpcodeByte = 247u + Opcode = Opcode.DIV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp6 OpRegMem + Operands = [| RM 16 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 247u + Opcode = Opcode.DIV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp6 OpRegMem + Operands = [| RM 32 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 247u + Opcode = Opcode.DIV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp6 OpRegMem + Operands = [| RM 64 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 247u + Opcode = Opcode.IDIV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp7 OpRegMem + Operands = [| RM 16 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 247u + Opcode = Opcode.IDIV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp7 OpRegMem + Operands = [| RM 32 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 247u + Opcode = Opcode.IDIV + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp7 OpRegMem + Operands = [| RM 64 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 247u + Opcode = Opcode.IMUL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp5 OpRegMem + Operands = [| RM 16 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 247u + Opcode = Opcode.IMUL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp5 OpRegMem + Operands = [| RM 32 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 247u + Opcode = Opcode.IMUL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp5 OpRegMem + Operands = [| RM 64 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 247u + Opcode = Opcode.MUL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| RM 16 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 247u + Opcode = Opcode.MUL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| RM 32 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 247u + Opcode = Opcode.MUL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| RM 64 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 247u + Opcode = Opcode.NEG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp3 OpRegMem + Operands = [| RM 16 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 247u + Opcode = Opcode.NEG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp3 OpRegMem + Operands = [| RM 32 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 247u + Opcode = Opcode.NEG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp3 OpRegMem + Operands = [| RM 64 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 247u + Opcode = Opcode.NOT + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| RM 16 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 247u + Opcode = Opcode.NOT + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| RM 32 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 247u + Opcode = Opcode.NOT + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| RM 64 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 247u + Opcode = Opcode.TEST + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpRegMem + Operands = [| RM 16; Imm 16 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 247u + Opcode = Opcode.TEST + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpRegMem + Operands = [| RM 32; Imm 32 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 247u + Opcode = Opcode.TEST + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpRegMem + Operands = [| RM 64; Imm 32 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 248(0xF8) + { OpcodeByte = 248u + Opcode = Opcode.CLC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 249(0xF9) + { OpcodeByte = 249u + Opcode = Opcode.STC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 250(0xFA) + { OpcodeByte = 250u + Opcode = Opcode.CLI + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 251(0xFB) + { OpcodeByte = 251u + Opcode = Opcode.STI + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 252(0xFC) + { OpcodeByte = 252u + Opcode = Opcode.CLD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 253(0xFD) + { OpcodeByte = 253u + Opcode = Opcode.STD + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 254(0xFE) + { OpcodeByte = 254u + Opcode = Opcode.DEC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp1 OpRegMem + Operands = [| RM 8 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 254u + Opcode = Opcode.INC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpRegMem + Operands = [| RM 8 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 255(0xFF) + { OpcodeByte = 255u + Opcode = Opcode.CALL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| RM 16 |] + OpEn = OpEn.M + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 255u + Opcode = Opcode.CALL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| RM 32 |] + OpEn = OpEn.M + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 255u + Opcode = Opcode.CALL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| RM 64 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 255u + Opcode = Opcode.CALL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp3 OpRegMem + Operands = [| Far 16 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 255u + Opcode = Opcode.CALL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp3 OpRegMem + Operands = [| Far 32 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 255u + Opcode = Opcode.CALL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp3 OpRegMem + Operands = [| Far 64 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 255u + Opcode = Opcode.DEC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp1 OpRegMem + Operands = [| RM 16 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 255u + Opcode = Opcode.DEC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp1 OpRegMem + Operands = [| RM 32 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 255u + Opcode = Opcode.DEC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp1 OpRegMem + Operands = [| RM 64 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 255u + Opcode = Opcode.INC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpRegMem + Operands = [| RM 16 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 255u + Opcode = Opcode.INC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpRegMem + Operands = [| RM 32 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 255u + Opcode = Opcode.INC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpRegMem + Operands = [| RM 64 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 255u + Opcode = Opcode.JMP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| RM 16 |] + OpEn = OpEn.M + Mode64 = Mode64.NS + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 255u + Opcode = Opcode.JMP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| RM 32 |] + OpEn = OpEn.M + Mode64 = Mode64.NS + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 255u + Opcode = Opcode.JMP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| RM 64 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 255u + Opcode = Opcode.JMP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp5 OpRegMem + Operands = [| Far 16 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 255u + Opcode = Opcode.JMP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp5 OpRegMem + Operands = [| Far 32 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 255u + Opcode = Opcode.JMP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp5 OpRegMem + Operands = [| Far 64 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 255u + Opcode = Opcode.PUSH + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp6 OpRegMem + Operands = [| RM 16 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 255u + Opcode = Opcode.PUSH + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp6 OpRegMem + Operands = [| RM 32 |] + OpEn = OpEn.M + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 255u + Opcode = Opcode.PUSH + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp6 OpRegMem + Operands = [| RM 64 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + |] + +let (norTwo: InstructionCore[][]) = + [| + [| // index 0(0x00) + { OpcodeByte = 0u + Opcode = Opcode.LLDT + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| RM 16 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 0u + Opcode = Opcode.LTR + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp3 OpRegMem + Operands = [| RM 16 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 0u + Opcode = Opcode.SLDT + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpRegMem + Operands = [| RM 16 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 0u + Opcode = Opcode.STR + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp1 OpRegMem + Operands = [| RM 16 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 0u + Opcode = Opcode.VERR + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| RM 16 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 0u + Opcode = Opcode.VERW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp5 OpRegMem + Operands = [| RM 16 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 1(0x01) + { OpcodeByte = 1u + Opcode = Opcode.CLAC + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xCAuy + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 1u + Opcode = Opcode.CLUI + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xEEuy + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Invalid + TupleType = TupleType.NA } + { OpcodeByte = 1u + Opcode = Opcode.INVLPG + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp7 OpMem + Operands = [| Mem 0 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 1u + Opcode = Opcode.LGDT + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp2 OpMem + Operands = [| Mem 32 |] + OpEn = OpEn.M + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 1u + Opcode = Opcode.LIDT + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp3 OpMem + Operands = [| Mem 32 |] + OpEn = OpEn.M + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 1u + Opcode = Opcode.LGDT + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp2 OpMem + Operands = [| Mem 64 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 1u + Opcode = Opcode.LIDT + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp3 OpMem + Operands = [| Mem 64 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 1u + Opcode = Opcode.LMSW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp6 OpRegMem + Operands = [| RM 16 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 1u + Opcode = Opcode.MONITOR + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xC8uy + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 1u + Opcode = Opcode.MWAIT + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xC9uy + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 1u + Opcode = Opcode.PCONFIG + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xC5uy + Operands = [| NoOpr |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 1u + Opcode = Opcode.RDMSRLIST + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xC6uy + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 1u + Opcode = Opcode.RDPKRU + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xEEuy + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 1u + Opcode = Opcode.RDTSCP + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xF9uy + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 1u + Opcode = Opcode.RSTORSSP + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp5 OpMem + Operands = [| Mem 64 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 1u + Opcode = Opcode.SAVEPREVSSP + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp5 OpRegMem + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 1u + Opcode = Opcode.SERIALIZE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xE8uy + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 1u + Opcode = Opcode.SETSSBSY + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xE8uy + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 1u + Opcode = Opcode.SGDT + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpMem + Operands = [| Mem 0 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 1u + Opcode = Opcode.SIDT + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp1 OpMem + Operands = [| Mem 0 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 1u + Opcode = Opcode.SMSW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| RM 16 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 1u + Opcode = Opcode.SMSW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| RMdiff(32, 16) |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 1u + Opcode = Opcode.SMSW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| RMdiff(64, 16) |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 1u + Opcode = Opcode.STAC + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xCBuy + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 1u + Opcode = Opcode.STUI + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xEFuy + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Invalid + TupleType = TupleType.NA } + { OpcodeByte = 1u + Opcode = Opcode.SWAPGS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xF8uy + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Invalid + TupleType = TupleType.NA } + { OpcodeByte = 1u + Opcode = Opcode.TESTUI + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xEDuy + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Invalid + TupleType = TupleType.NA } + { OpcodeByte = 1u + Opcode = Opcode.UIRET + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xECuy + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Invalid + TupleType = TupleType.NA } + { OpcodeByte = 1u + Opcode = Opcode.WRMSRLIST + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xC6uy + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 1u + Opcode = Opcode.WRMSRNS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xC6uy + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 1u + Opcode = Opcode.WRPKRU + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xEFuy + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 1u + Opcode = Opcode.XEND + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xD5uy + Operands = [| NoOpr |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 1u + Opcode = Opcode.XGETBV + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xD0uy + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 1u + Opcode = Opcode.XRESLDTRK + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xE9uy + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 1u + Opcode = Opcode.XSETBV + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xD1uy + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 1u + Opcode = Opcode.XSUSLDTRK + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xE8uy + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 1u + Opcode = Opcode.XTEST + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xD6uy + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 2(0x02) + { OpcodeByte = 2u + Opcode = Opcode.LAR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 2u + Opcode = Opcode.LAR + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RMdiff(32, 16) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 2u + Opcode = Opcode.LAR + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RMdiff(64, 16) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 3(0x03) + { OpcodeByte = 3u + Opcode = Opcode.LSL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 3u + Opcode = Opcode.LSL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RMdiff(32, 16) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 3u + Opcode = Opcode.LSL + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RMdiff(32, 16) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 4(0x04) + |] + [| // index 5(0x05) + { OpcodeByte = 5u + Opcode = Opcode.SYSCALL + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Invalid + TupleType = TupleType.NA } + |] + [| // index 6(0x06) + { OpcodeByte = 6u + Opcode = Opcode.CLTS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 7(0x07) + { OpcodeByte = 7u + Opcode = Opcode.SYSRET + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Invalid + TupleType = TupleType.NA } + { OpcodeByte = 7u + Opcode = Opcode.SYSRET + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Invalid + TupleType = TupleType.NA } + |] + [| // index 8(0x08) + { OpcodeByte = 8u + Opcode = Opcode.INVD + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 9(0x09) + { OpcodeByte = 9u + Opcode = Opcode.WBINVD + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 9u + Opcode = Opcode.WBNOINVD + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 10(0x0A) + |] + [| // index 11(0x0B) + { OpcodeByte = 11u + Opcode = Opcode.UD2 + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 12(0x0C) + |] + [| // index 13(0x0D) + { OpcodeByte = 13u + Opcode = Opcode.PREFETCHW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp1 OpRegMem + Operands = [| Mem 8 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 13u + Opcode = Opcode.PREFETCHWT1 + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| Mem 8 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 14(0x0E) + |] + [| // index 15(0x0F) + |] + [| // index 16(0x10) + { OpcodeByte = 16u + Opcode = Opcode.MOVSD + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 16u + Opcode = Opcode.MOVSD + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Mem 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 16u + Opcode = Opcode.MOVSS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 16u + Opcode = Opcode.MOVSS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Mem 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 16u + Opcode = Opcode.MOVUPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 16u + Opcode = Opcode.MOVUPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 17(0x11) + { OpcodeByte = 17u + Opcode = Opcode.MOVSD + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RMdiff(128, 64); Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 17u + Opcode = Opcode.MOVSS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RMdiff(128, 32); Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 17u + Opcode = Opcode.MOVUPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 17u + Opcode = Opcode.MOVUPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 18(0x12) + { OpcodeByte = 18u + Opcode = Opcode.MOVDDUP + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 18u + Opcode = Opcode.MOVHLPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 18u + Opcode = Opcode.MOVLPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Mem 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 18u + Opcode = Opcode.MOVLPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Mem 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 18u + Opcode = Opcode.MOVSLDUP + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 19(0x13) + { OpcodeByte = 19u + Opcode = Opcode.MOVLPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 64; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 19u + Opcode = Opcode.MOVLPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 64; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 20(0x14) + { OpcodeByte = 20u + Opcode = Opcode.UNPCKLPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 20u + Opcode = Opcode.UNPCKLPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 21(0x15) + { OpcodeByte = 21u + Opcode = Opcode.UNPCKHPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 21u + Opcode = Opcode.UNPCKHPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 22(0x16) + { OpcodeByte = 22u + Opcode = Opcode.MOVHPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Mem 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 22u + Opcode = Opcode.MOVHPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Mem 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 22u + Opcode = Opcode.MOVLHPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 22u + Opcode = Opcode.MOVSHDUP + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 23(0x17) + { OpcodeByte = 23u + Opcode = Opcode.MOVHPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 64; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 23u + Opcode = Opcode.MOVHPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 64; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 24(0x18) + { OpcodeByte = 24u + Opcode = Opcode.PREFETCHT0 + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp1 OpRegMem + Operands = [| Mem 8 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 24u + Opcode = Opcode.PREFETCHT1 + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| Mem 8 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 24u + Opcode = Opcode.PREFETCHT2 + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp3 OpRegMem + Operands = [| Mem 8 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 24u + Opcode = Opcode.PREFETCHNTA + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpRegMem + Operands = [| Mem 8 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 24u + Opcode = Opcode.PREFETCHIT0 + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp7 OpRegMem + Operands = [| Mem 8 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Invalid + TupleType = TupleType.NA } + { OpcodeByte = 24u + Opcode = Opcode.PREFETCHIT1 + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp6 OpRegMem + Operands = [| Mem 8 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Invalid + TupleType = TupleType.NA } + |] + [| // index 25(0x19) + |] + [| // index 26(0x1A) + { OpcodeByte = 26u + Opcode = Opcode.BNDCL + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| BndReg; RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 26u + Opcode = Opcode.BNDCL + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| BndReg; RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 26u + Opcode = Opcode.BNDCU + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| BndReg; RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 26u + Opcode = Opcode.BNDCU + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| BndReg; RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 26u + Opcode = Opcode.BNDLDX + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| BndReg; Mem 0 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 26u + Opcode = Opcode.BNDMOV + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| BndReg; BM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 26u + Opcode = Opcode.BNDMOV + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| BndReg; BM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 27(0x1B) + { OpcodeByte = 27u + Opcode = Opcode.BNDCN + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| BndReg; RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 27u + Opcode = Opcode.BNDCN + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| BndReg; RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 27u + Opcode = Opcode.BNDMK + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| BndReg; Mem 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 27u + Opcode = Opcode.BNDMK + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| BndReg; Mem 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 27u + Opcode = Opcode.BNDMOV + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| BM 64; BndReg |] + OpEn = OpEn.MR + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 27u + Opcode = Opcode.BNDMOV + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| BM 128; BndReg |] + OpEn = OpEn.MR + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 27u + Opcode = Opcode.BNDSTX + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 0; BndReg |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 28(0x1C) + { OpcodeByte = 28u + Opcode = Opcode.CLDEMOTE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpRegMem + Operands = [| Mem 8 |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 29(0x1D) + |] + [| // index 30(0x1E) + { OpcodeByte = 30u + Opcode = Opcode.ENDBR32 + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xFBuy + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 30u + Opcode = Opcode.ENDBR64 + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xFAuy + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 30u + Opcode = Opcode.RDSSPD + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp1 OpRegMem + Operands = [| Reg(32, RMBit) |] + OpEn = OpEn.R + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 30u + Opcode = Opcode.RDSSPQ + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp1 OpRegMem + Operands = [| Reg(64, RMBit) |] + OpEn = OpEn.R + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 31(0x1F) + { OpcodeByte = 31u + Opcode = Opcode.NOP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpRegMem + Operands = [| RM 16 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 31u + Opcode = Opcode.NOP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpRegMem + Operands = [| RM 32 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 32(0x20) + { OpcodeByte = 32u + Opcode = Opcode.MOV + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RMBit); CtrlReg |] + OpEn = OpEn.MR + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 32u + Opcode = Opcode.MOV + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RMBit); CtrlReg |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 32u + Opcode = Opcode.MOV + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpRegMem + Operands = [| Reg(64, RMBit); CtrlReg |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 33(0x21) + { OpcodeByte = 33u + Opcode = Opcode.MOV + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RMBit); DebugReg |] + OpEn = OpEn.MR + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 33u + Opcode = Opcode.MOV + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RMBit); DebugReg |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 34(0x22) + { OpcodeByte = 34u + Opcode = Opcode.MOV + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| CtrlReg; Reg(32, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 34u + Opcode = Opcode.MOV + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| CtrlReg; Reg(64, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 34u + Opcode = Opcode.MOV + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpRegMem + Operands = [| CtrlReg; Reg(64, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 35(0x23) + { OpcodeByte = 35u + Opcode = Opcode.MOV + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| DebugReg; Reg(32, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 35u + Opcode = Opcode.MOV + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| DebugReg; Reg(64, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 36(0x24) + |] + [| // index 37(0x25) + |] + [| // index 38(0x26) + |] + [| // index 39(0x27) + |] + [| // index 40(0x28) + { OpcodeByte = 40u + Opcode = Opcode.MOVAPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 40u + Opcode = Opcode.MOVAPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 41(0x29) + { OpcodeByte = 41u + Opcode = Opcode.MOVAPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 41u + Opcode = Opcode.MOVAPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 42(0x2A) + { OpcodeByte = 42u + Opcode = Opcode.CVTPI2PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 42u + Opcode = Opcode.CVTPI2PS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 42u + Opcode = Opcode.CVTSI2SD + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 42u + Opcode = Opcode.CVTSI2SD + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 42u + Opcode = Opcode.CVTSI2SS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 42u + Opcode = Opcode.CVTSI2SS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 43(0x2B) + { OpcodeByte = 43u + Opcode = Opcode.MOVNTPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 128; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 43u + Opcode = Opcode.MOVNTPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 128; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 44(0x2C) + { OpcodeByte = 44u + Opcode = Opcode.CVTTPD2PI + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 44u + Opcode = Opcode.CVTTPS2PI + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 44u + Opcode = Opcode.CVTTSD2SI + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 44u + Opcode = Opcode.CVTTSD2SI + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 44u + Opcode = Opcode.CVTTSS2SI + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RMdiff(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 44u + Opcode = Opcode.CVTTSS2SI + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RMdiff(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 45(0x2D) + { OpcodeByte = 45u + Opcode = Opcode.CVTPD2PI + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 45u + Opcode = Opcode.CVTPS2PI + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 45u + Opcode = Opcode.CVTSD2SI + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 45u + Opcode = Opcode.CVTSD2SI + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 45u + Opcode = Opcode.CVTSS2SI + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RMdiff(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 45u + Opcode = Opcode.CVTSS2SI + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RMdiff(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 46(0x2E) + { OpcodeByte = 46u + Opcode = Opcode.UCOMISD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 46u + Opcode = Opcode.UCOMISS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 47(0x2F) + { OpcodeByte = 47u + Opcode = Opcode.COMISD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 47u + Opcode = Opcode.COMISS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 48(0x30) + { OpcodeByte = 48u + Opcode = Opcode.WRMSR + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 49(0x31) + { OpcodeByte = 49u + Opcode = Opcode.RDTSC + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 50(0x32) + { OpcodeByte = 50u + Opcode = Opcode.RDMSR + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 51(0x33) + { OpcodeByte = 51u + Opcode = Opcode.RDPMC + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 52(0x34) + { OpcodeByte = 52u + Opcode = Opcode.SYSENTER + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 53(0x35) + { OpcodeByte = 53u + Opcode = Opcode.SYSEXIT + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 53u + Opcode = Opcode.SYSEXIT + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 54(0x36) + |] + [| // index 55(0x37) + { OpcodeByte = 55u + Opcode = Opcode.GETSEC + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.None + Mode64 = Mode64.None + Compat = CompatLegMode.None + TupleType = TupleType.NA } + |] + [| // index 56(0x38) + |] + [| // index 57(0x39) + |] + [| // index 58(0x3A) + |] + [| // index 59(0x3B) + |] + [| // index 60(0x3C) + |] + [| // index 61(0x3D) + |] + [| // index 62(0x3E) + |] + [| // index 63(0x3F) + |] + [| // index 64(0x40) + { OpcodeByte = 64u + Opcode = Opcode.CMOVO + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 64u + Opcode = Opcode.CMOVO + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 64u + Opcode = Opcode.CMOVO + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 65(0x41) + { OpcodeByte = 65u + Opcode = Opcode.CMOVNO + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 65u + Opcode = Opcode.CMOVNO + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 65u + Opcode = Opcode.CMOVNO + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 66(0x42) + { OpcodeByte = 66u + Opcode = Opcode.CMOVB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 66u + Opcode = Opcode.CMOVB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 66u + Opcode = Opcode.CMOVB + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 66u + Opcode = Opcode.CMOVC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 66u + Opcode = Opcode.CMOVC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 66u + Opcode = Opcode.CMOVC + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 66u + Opcode = Opcode.CMOVNAE + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 66u + Opcode = Opcode.CMOVNAE + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 66u + Opcode = Opcode.CMOVNAE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 67(0x43) + { OpcodeByte = 67u + Opcode = Opcode.CMOVAE + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 67u + Opcode = Opcode.CMOVAE + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 67u + Opcode = Opcode.CMOVAE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 67u + Opcode = Opcode.CMOVNB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 67u + Opcode = Opcode.CMOVNB + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 67u + Opcode = Opcode.CMOVNB + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 67u + Opcode = Opcode.CMOVNC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 67u + Opcode = Opcode.CMOVNC + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 67u + Opcode = Opcode.CMOVNC + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 68(0x44) + { OpcodeByte = 68u + Opcode = Opcode.CMOVE + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 68u + Opcode = Opcode.CMOVE + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 68u + Opcode = Opcode.CMOVE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 68u + Opcode = Opcode.CMOVZ + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 68u + Opcode = Opcode.CMOVZ + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 68u + Opcode = Opcode.CMOVZ + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 69(0x45) + { OpcodeByte = 69u + Opcode = Opcode.CMOVNE + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 69u + Opcode = Opcode.CMOVNE + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 69u + Opcode = Opcode.CMOVNE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 69u + Opcode = Opcode.CMOVNZ + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 69u + Opcode = Opcode.CMOVNZ + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 69u + Opcode = Opcode.CMOVNZ + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 70(0x46) + { OpcodeByte = 70u + Opcode = Opcode.CMOVBE + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 70u + Opcode = Opcode.CMOVBE + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 70u + Opcode = Opcode.CMOVBE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 70u + Opcode = Opcode.CMOVNA + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 70u + Opcode = Opcode.CMOVNA + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 70u + Opcode = Opcode.CMOVNA + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 71(0x47) + { OpcodeByte = 71u + Opcode = Opcode.CMOVA + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 71u + Opcode = Opcode.CMOVA + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 71u + Opcode = Opcode.CMOVA + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 71u + Opcode = Opcode.CMOVNBE + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 71u + Opcode = Opcode.CMOVNBE + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 71u + Opcode = Opcode.CMOVNBE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 72(0x48) + { OpcodeByte = 72u + Opcode = Opcode.CMOVS + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 72u + Opcode = Opcode.CMOVS + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 72u + Opcode = Opcode.CMOVS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 73(0x49) + { OpcodeByte = 73u + Opcode = Opcode.CMOVNS + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 73u + Opcode = Opcode.CMOVNS + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 73u + Opcode = Opcode.CMOVNS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 74(0x4A) + { OpcodeByte = 74u + Opcode = Opcode.CMOVP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 74u + Opcode = Opcode.CMOVP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 74u + Opcode = Opcode.CMOVP + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 74u + Opcode = Opcode.CMOVPE + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 74u + Opcode = Opcode.CMOVPE + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 74u + Opcode = Opcode.CMOVPE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 75(0x4B) + { OpcodeByte = 75u + Opcode = Opcode.CMOVNP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 75u + Opcode = Opcode.CMOVNP + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 75u + Opcode = Opcode.CMOVNP + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 75u + Opcode = Opcode.CMOVPO + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 75u + Opcode = Opcode.CMOVPO + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 75u + Opcode = Opcode.CMOVPO + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 76(0x4C) + { OpcodeByte = 76u + Opcode = Opcode.CMOVL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 76u + Opcode = Opcode.CMOVL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 76u + Opcode = Opcode.CMOVL + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 76u + Opcode = Opcode.CMOVNGE + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 76u + Opcode = Opcode.CMOVNGE + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 76u + Opcode = Opcode.CMOVNGE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 77(0x4D) + { OpcodeByte = 77u + Opcode = Opcode.CMOVGE + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 77u + Opcode = Opcode.CMOVGE + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 77u + Opcode = Opcode.CMOVGE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 77u + Opcode = Opcode.CMOVNL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 77u + Opcode = Opcode.CMOVNL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 77u + Opcode = Opcode.CMOVNL + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 78(0x4E) + { OpcodeByte = 78u + Opcode = Opcode.CMOVLE + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 78u + Opcode = Opcode.CMOVLE + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 78u + Opcode = Opcode.CMOVLE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 78u + Opcode = Opcode.CMOVNG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 78u + Opcode = Opcode.CMOVNG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 78u + Opcode = Opcode.CMOVNG + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 79(0x4F) + { OpcodeByte = 79u + Opcode = Opcode.CMOVG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 79u + Opcode = Opcode.CMOVG + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 79u + Opcode = Opcode.CMOVG + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.None + Compat = CompatLegMode.NA + TupleType = TupleType.NA } + { OpcodeByte = 79u + Opcode = Opcode.CMOVNLE + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 79u + Opcode = Opcode.CMOVNLE + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 79u + Opcode = Opcode.CMOVNLE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 80(0x50) + { OpcodeByte = 80u + Opcode = Opcode.MOVMSKPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); Reg(128, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 80u + Opcode = Opcode.MOVMSKPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); Reg(128, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 81(0x51) + { OpcodeByte = 81u + Opcode = Opcode.SQRTPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 81u + Opcode = Opcode.SQRTPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 81u + Opcode = Opcode.SQRTSD + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 81u + Opcode = Opcode.SQRTSS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 82(0x52) + { OpcodeByte = 82u + Opcode = Opcode.RSQRTPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 82u + Opcode = Opcode.RSQRTSS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 83(0x53) + { OpcodeByte = 83u + Opcode = Opcode.RCPPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 83u + Opcode = Opcode.RCPSS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 84(0x54) + { OpcodeByte = 84u + Opcode = Opcode.ANDPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 84u + Opcode = Opcode.ANDPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 85(0x55) + { OpcodeByte = 85u + Opcode = Opcode.ANDNPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 85u + Opcode = Opcode.ANDNPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 86(0x56) + { OpcodeByte = 86u + Opcode = Opcode.ORPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 86u + Opcode = Opcode.ORPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 87(0x57) + { OpcodeByte = 87u + Opcode = Opcode.XORPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 87u + Opcode = Opcode.XORPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 88(0x58) + { OpcodeByte = 88u + Opcode = Opcode.ADDPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 88u + Opcode = Opcode.ADDPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 88u + Opcode = Opcode.ADDSD + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 88u + Opcode = Opcode.ADDSS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 89(0x59) + { OpcodeByte = 89u + Opcode = Opcode.MULPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 89u + Opcode = Opcode.MULPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 89u + Opcode = Opcode.MULSD + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 89u + Opcode = Opcode.MULSS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 90(0x5A) + { OpcodeByte = 90u + Opcode = Opcode.CVTPD2PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 90u + Opcode = Opcode.CVTPS2PD + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 90u + Opcode = Opcode.CVTSD2SS + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 90u + Opcode = Opcode.CVTSS2SD + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 91(0x5B) + { OpcodeByte = 91u + Opcode = Opcode.CVTDQ2PS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 91u + Opcode = Opcode.CVTPS2DQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 91u + Opcode = Opcode.CVTTPS2DQ + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 92(0x5C) + { OpcodeByte = 92u + Opcode = Opcode.SUBPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 92u + Opcode = Opcode.SUBPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 92u + Opcode = Opcode.SUBSD + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 92u + Opcode = Opcode.SUBSS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 93(0x5D) + { OpcodeByte = 93u + Opcode = Opcode.MINPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 93u + Opcode = Opcode.MINPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 93u + Opcode = Opcode.MINSD + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 93u + Opcode = Opcode.MINSS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 94(0x5E) + { OpcodeByte = 94u + Opcode = Opcode.DIVPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 94u + Opcode = Opcode.DIVPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 94u + Opcode = Opcode.DIVSD + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 94u + Opcode = Opcode.DIVSS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 95(0x5F) + { OpcodeByte = 95u + Opcode = Opcode.MAXPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 95u + Opcode = Opcode.MAXPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 95u + Opcode = Opcode.MAXSD + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 95u + Opcode = Opcode.MAXSS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 96(0x60) + { OpcodeByte = 96u + Opcode = Opcode.PUNPCKLBW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 96u + Opcode = Opcode.PUNPCKLBW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 97(0x61) + { OpcodeByte = 97u + Opcode = Opcode.PUNPCKLWD + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 97u + Opcode = Opcode.PUNPCKLWD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 98(0x62) + { OpcodeByte = 98u + Opcode = Opcode.PUNPCKLDQ + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 98u + Opcode = Opcode.PUNPCKLDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 99(0x63) + { OpcodeByte = 99u + Opcode = Opcode.PACKSSWB + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 99u + Opcode = Opcode.PACKSSWB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 100(0x64) + { OpcodeByte = 100u + Opcode = Opcode.PCMPGTB + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 100u + Opcode = Opcode.PCMPGTB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 101(0x65) + { OpcodeByte = 101u + Opcode = Opcode.PCMPGTW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 101u + Opcode = Opcode.PCMPGTW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 102(0x66) + { OpcodeByte = 102u + Opcode = Opcode.PCMPGTD + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 102u + Opcode = Opcode.PCMPGTD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 103(0x67) + { OpcodeByte = 103u + Opcode = Opcode.PACKUSWB + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 103u + Opcode = Opcode.PACKUSWB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 104(0x68) + { OpcodeByte = 104u + Opcode = Opcode.PUNPCKHBW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 104u + Opcode = Opcode.PUNPCKHBW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 105(0x69) + { OpcodeByte = 105u + Opcode = Opcode.PUNPCKHWD + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 105u + Opcode = Opcode.PUNPCKHWD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 106(0x6A) + { OpcodeByte = 106u + Opcode = Opcode.PUNPCKHDQ + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 106u + Opcode = Opcode.PUNPCKHDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 107(0x6B) + { OpcodeByte = 107u + Opcode = Opcode.PACKSSDW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 107u + Opcode = Opcode.PACKSSDW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 108(0x6C) + { OpcodeByte = 108u + Opcode = Opcode.PUNPCKLQDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 109(0x6D) + { OpcodeByte = 109u + Opcode = Opcode.PUNPCKHQDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 110(0x6E) + { OpcodeByte = 110u + Opcode = Opcode.MOVD + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 110u + Opcode = Opcode.MOVQ + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 110u + Opcode = Opcode.MOVD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 110u + Opcode = Opcode.MOVQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 111(0x6F) + { OpcodeByte = 111u + Opcode = Opcode.MOVDQA + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 111u + Opcode = Opcode.MOVDQU + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 111u + Opcode = Opcode.MOVQ + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 112(0x70) + { OpcodeByte = 112u + Opcode = Opcode.PSHUFD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 112u + Opcode = Opcode.PSHUFHW + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 112u + Opcode = Opcode.PSHUFLW + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 112u + Opcode = Opcode.PSHUFW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 113(0x71) + { OpcodeByte = 113u + Opcode = Opcode.PSLLW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp6 OpRegMem + Operands = [| MMXReg(RMBit); Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 113u + Opcode = Opcode.PSLLW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp6 OpRegMem + Operands = [| Reg(128, RMBit); Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 113u + Opcode = Opcode.PSRAW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| MMXReg(RMBit); Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 113u + Opcode = Opcode.PSRAW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| Reg(128, RMBit); Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 113u + Opcode = Opcode.PSRLW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| MMXReg(RMBit); Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 113u + Opcode = Opcode.PSRLW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| Reg(128, RMBit); Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 114(0x72) + { OpcodeByte = 114u + Opcode = Opcode.PSLLD + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp6 OpRegMem + Operands = [| MMXReg(RMBit); Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 114u + Opcode = Opcode.PSLLD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp6 OpRegMem + Operands = [| Reg(128, RMBit); Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 114u + Opcode = Opcode.PSRAD + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| MMXReg(RMBit); Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 114u + Opcode = Opcode.PSRAD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| Reg(128, RMBit); Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 114u + Opcode = Opcode.PSRLD + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| MMXReg(RMBit); Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 114u + Opcode = Opcode.PSRLD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| Reg(128, RMBit); Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 115(0x73) + { OpcodeByte = 115u + Opcode = Opcode.PSLLDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp7 OpRegMem + Operands = [| Reg(128, RMBit); Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 115u + Opcode = Opcode.PSLLQ + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp6 OpRegMem + Operands = [| MMXReg(RMBit); Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 115u + Opcode = Opcode.PSLLQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp6 OpRegMem + Operands = [| Reg(128, RMBit); Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 115u + Opcode = Opcode.PSRLDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp3 OpRegMem + Operands = [| Reg(128, RMBit); Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 115u + Opcode = Opcode.PSRLQ + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| MMXReg(RMBit); Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 115u + Opcode = Opcode.PSRLQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| Reg(128, RMBit); Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 116(0x74) + { OpcodeByte = 116u + Opcode = Opcode.PCMPEQB + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 116u + Opcode = Opcode.PCMPEQB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 117(0x75) + { OpcodeByte = 117u + Opcode = Opcode.PCMPEQW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 117u + Opcode = Opcode.PCMPEQW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 118(0x76) + { OpcodeByte = 118u + Opcode = Opcode.PCMPEQD + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 118u + Opcode = Opcode.PCMPEQD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 119(0x77) + { OpcodeByte = 119u + Opcode = Opcode.EMMS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 120(0x78) + |] + [| // index 121(0x79) + |] + [| // index 122(0x7A) + |] + [| // index 123(0x7B) + |] + [| // index 124(0x7C) + { OpcodeByte = 124u + Opcode = Opcode.HADDPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 124u + Opcode = Opcode.HADDPS + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 125(0x7D) + { OpcodeByte = 125u + Opcode = Opcode.HSUBPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 125u + Opcode = Opcode.HSUBPS + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 126(0x7E) + { OpcodeByte = 126u + Opcode = Opcode.MOVD + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 32; MMXReg(RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 126u + Opcode = Opcode.MOVQ + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 64; MMXReg(RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 126u + Opcode = Opcode.MOVD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 32; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 126u + Opcode = Opcode.MOVQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 64; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 126u + Opcode = Opcode.MOVQ + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 127(0x7F) + { OpcodeByte = 127u + Opcode = Opcode.MOVDQA + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 127u + Opcode = Opcode.MOVDQU + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 127u + Opcode = Opcode.MOVQ + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MM 64; MMXReg(RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 128(0x80) + { OpcodeByte = 128u + Opcode = Opcode.JO + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 16 |] + OpEn = OpEn.D + Mode64 = Mode64.NS + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 128u + Opcode = Opcode.JO + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 32 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 129(0x81) + { OpcodeByte = 129u + Opcode = Opcode.JNO + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 16 |] + OpEn = OpEn.D + Mode64 = Mode64.NS + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 129u + Opcode = Opcode.JNO + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 32 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 130(0x82) + { OpcodeByte = 130u + Opcode = Opcode.JB + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 16 |] + OpEn = OpEn.D + Mode64 = Mode64.NS + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 130u + Opcode = Opcode.JB + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 32 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 130u + Opcode = Opcode.JB + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 16 |] + OpEn = OpEn.D + Mode64 = Mode64.NS + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 130u + Opcode = Opcode.JB + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 32 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 130u + Opcode = Opcode.JB + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 16 |] + OpEn = OpEn.D + Mode64 = Mode64.NS + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 130u + Opcode = Opcode.JB + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 32 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 131(0x83) + { OpcodeByte = 131u + Opcode = Opcode.JNB + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 16 |] + OpEn = OpEn.D + Mode64 = Mode64.NS + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 131u + Opcode = Opcode.JNB + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 32 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 131u + Opcode = Opcode.JNB + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 16 |] + OpEn = OpEn.D + Mode64 = Mode64.NS + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 131u + Opcode = Opcode.JNB + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 32 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 131u + Opcode = Opcode.JNB + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 16 |] + OpEn = OpEn.D + Mode64 = Mode64.NS + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 131u + Opcode = Opcode.JNB + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 32 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 132(0x84) + { OpcodeByte = 132u + Opcode = Opcode.JZ + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 16 |] + OpEn = OpEn.D + Mode64 = Mode64.NS + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 132u + Opcode = Opcode.JZ + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 32 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 132u + Opcode = Opcode.JZ + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 16 |] + OpEn = OpEn.D + Mode64 = Mode64.NS + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 132u + Opcode = Opcode.JZ + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 32 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 132u + Opcode = Opcode.JZ + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 16 |] + OpEn = OpEn.D + Mode64 = Mode64.NS + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 132u + Opcode = Opcode.JZ + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 32 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 133(0x85) + { OpcodeByte = 133u + Opcode = Opcode.JNE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 16 |] + OpEn = OpEn.D + Mode64 = Mode64.NS + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 133u + Opcode = Opcode.JNE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 32 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 133u + Opcode = Opcode.JNE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 16 |] + OpEn = OpEn.D + Mode64 = Mode64.NS + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 133u + Opcode = Opcode.JNE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 32 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 134(0x86) + { OpcodeByte = 134u + Opcode = Opcode.JBE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 16 |] + OpEn = OpEn.D + Mode64 = Mode64.NS + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 134u + Opcode = Opcode.JBE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 32 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 134u + Opcode = Opcode.JBE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 16 |] + OpEn = OpEn.D + Mode64 = Mode64.NS + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 134u + Opcode = Opcode.JBE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 32 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 135(0x87) + { OpcodeByte = 135u + Opcode = Opcode.JA + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 16 |] + OpEn = OpEn.D + Mode64 = Mode64.NS + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 135u + Opcode = Opcode.JA + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 32 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 135u + Opcode = Opcode.JA + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 16 |] + OpEn = OpEn.D + Mode64 = Mode64.NS + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 135u + Opcode = Opcode.JA + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 32 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 136(0x88) + { OpcodeByte = 136u + Opcode = Opcode.JS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 16 |] + OpEn = OpEn.D + Mode64 = Mode64.NS + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 136u + Opcode = Opcode.JS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 32 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 137(0x89) + { OpcodeByte = 137u + Opcode = Opcode.JNS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 16 |] + OpEn = OpEn.D + Mode64 = Mode64.NS + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 137u + Opcode = Opcode.JNS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 32 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 138(0x8A) + { OpcodeByte = 138u + Opcode = Opcode.JPE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 16 |] + OpEn = OpEn.D + Mode64 = Mode64.NS + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 138u + Opcode = Opcode.JPE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 32 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 138u + Opcode = Opcode.JPE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 16 |] + OpEn = OpEn.D + Mode64 = Mode64.NS + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 138u + Opcode = Opcode.JPE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 32 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 139(0x8B) + { OpcodeByte = 139u + Opcode = Opcode.JNP + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 16 |] + OpEn = OpEn.D + Mode64 = Mode64.NS + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 139u + Opcode = Opcode.JNP + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 32 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 139u + Opcode = Opcode.JNP + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 16 |] + OpEn = OpEn.D + Mode64 = Mode64.NS + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 139u + Opcode = Opcode.JNP + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 32 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 140(0x8C) + { OpcodeByte = 140u + Opcode = Opcode.JL + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 16 |] + OpEn = OpEn.D + Mode64 = Mode64.NS + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 140u + Opcode = Opcode.JL + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 32 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 140u + Opcode = Opcode.JL + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 16 |] + OpEn = OpEn.D + Mode64 = Mode64.NS + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 140u + Opcode = Opcode.JL + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 32 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 141(0x8D) + { OpcodeByte = 141u + Opcode = Opcode.JNL + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 16 |] + OpEn = OpEn.D + Mode64 = Mode64.NS + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 141u + Opcode = Opcode.JNL + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 32 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 141u + Opcode = Opcode.JNL + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 16 |] + OpEn = OpEn.D + Mode64 = Mode64.NS + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 141u + Opcode = Opcode.JNL + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 32 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 142(0x8E) + { OpcodeByte = 142u + Opcode = Opcode.JNG + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 16 |] + OpEn = OpEn.D + Mode64 = Mode64.NS + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 142u + Opcode = Opcode.JNG + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 32 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 142u + Opcode = Opcode.JNG + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 16 |] + OpEn = OpEn.D + Mode64 = Mode64.NS + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 142u + Opcode = Opcode.JNG + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 32 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 143(0x8F) + { OpcodeByte = 143u + Opcode = Opcode.JNLE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 16 |] + OpEn = OpEn.D + Mode64 = Mode64.NS + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 143u + Opcode = Opcode.JNLE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 32 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 143u + Opcode = Opcode.JNLE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 16 |] + OpEn = OpEn.D + Mode64 = Mode64.NS + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 143u + Opcode = Opcode.JNLE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Rel 32 |] + OpEn = OpEn.D + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 144(0x90) + { OpcodeByte = 144u + Opcode = Opcode.SETO + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| RM 8 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 145(0x91) + { OpcodeByte = 145u + Opcode = Opcode.SETNO + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| RM 8 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 146(0x92) + { OpcodeByte = 146u + Opcode = Opcode.SETB + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| RM 8 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 146u + Opcode = Opcode.SETC + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| RM 8 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 146u + Opcode = Opcode.SETNAE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| RM 8 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 147(0x93) + { OpcodeByte = 147u + Opcode = Opcode.SETAE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| RM 8 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 147u + Opcode = Opcode.SETNB + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| RM 8 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 147u + Opcode = Opcode.SETNC + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| RM 8 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 148(0x94) + { OpcodeByte = 148u + Opcode = Opcode.SETE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| RM 8 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 148u + Opcode = Opcode.SETZ + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| RM 8 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 149(0x95) + { OpcodeByte = 149u + Opcode = Opcode.SETNE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| RM 8 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 149u + Opcode = Opcode.SETNZ + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| RM 8 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 150(0x96) + { OpcodeByte = 150u + Opcode = Opcode.SETBE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| RM 8 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 150u + Opcode = Opcode.SETNA + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| RM 8 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 151(0x97) + { OpcodeByte = 151u + Opcode = Opcode.SETA + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| RM 8 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 151u + Opcode = Opcode.SETNBE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| RM 8 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 152(0x98) + { OpcodeByte = 152u + Opcode = Opcode.SETS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| RM 8 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 153(0x99) + { OpcodeByte = 153u + Opcode = Opcode.SETNS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| RM 8 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 154(0x9A) + { OpcodeByte = 154u + Opcode = Opcode.SETP + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| RM 8 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 154u + Opcode = Opcode.SETPE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| RM 8 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 155(0x9B) + { OpcodeByte = 155u + Opcode = Opcode.SETNP + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| RM 8 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 155u + Opcode = Opcode.SETPO + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| RM 8 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 156(0x9C) + { OpcodeByte = 156u + Opcode = Opcode.SETL + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| RM 8 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 156u + Opcode = Opcode.SETNGE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| RM 8 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 157(0x9D) + { OpcodeByte = 157u + Opcode = Opcode.SETGE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| RM 8 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 157u + Opcode = Opcode.SETNL + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| RM 8 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 158(0x9E) + { OpcodeByte = 158u + Opcode = Opcode.SETLE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| RM 8 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 158u + Opcode = Opcode.SETNG + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| RM 8 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 159(0x9F) + { OpcodeByte = 159u + Opcode = Opcode.SETG + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| RM 8 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 159u + Opcode = Opcode.SETNLE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| RM 8 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 160(0xA0) + { OpcodeByte = 160u + Opcode = Opcode.PUSH + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.FS) |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 161(0xA1) + { OpcodeByte = 161u + Opcode = Opcode.POP + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.FS) |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 161u + Opcode = Opcode.POP + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.FS) |] + OpEn = OpEn.ZO + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 161u + Opcode = Opcode.POP + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.FS) |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 162(0xA2) + { OpcodeByte = 162u + Opcode = Opcode.CPUID + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 163(0xA3) + { OpcodeByte = 163u + Opcode = Opcode.BT + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 16; Reg(16, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 163u + Opcode = Opcode.BT + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 32; Reg(32, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 163u + Opcode = Opcode.BT + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 64; Reg(64, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 164(0xA4) + { OpcodeByte = 164u + Opcode = Opcode.SHLD + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 16; Reg(16, RegBit); Imm 8 |] + OpEn = OpEn.MRI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 164u + Opcode = Opcode.SHLD + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 32; Reg(32, RegBit); Imm 8 |] + OpEn = OpEn.MRI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 164u + Opcode = Opcode.SHLD + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 64; Reg(64, RegBit); Imm 8 |] + OpEn = OpEn.MRI + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 165(0xA5) + { OpcodeByte = 165u + Opcode = Opcode.SHLD + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 16; Reg(16, RegBit); FixedReg(Register.CL) |] + OpEn = OpEn.MRC + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 165u + Opcode = Opcode.SHLD + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 32; Reg(32, RegBit); FixedReg(Register.CL) |] + OpEn = OpEn.MRC + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 165u + Opcode = Opcode.SHLD + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 64; Reg(64, RegBit); FixedReg(Register.CL) |] + OpEn = OpEn.MRC + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 166(0xA6) + |] + [| // index 167(0xA7) + |] + [| // index 168(0xA8) + { OpcodeByte = 168u + Opcode = Opcode.PUSH + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.GS) |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 169(0xA9) + { OpcodeByte = 169u + Opcode = Opcode.POP + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.GS) |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 169u + Opcode = Opcode.POP + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.GS) |] + OpEn = OpEn.ZO + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 169u + Opcode = Opcode.POP + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| FixedReg(Register.GS) |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 170(0xAA) + { OpcodeByte = 170u + Opcode = Opcode.RSM + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 171(0xAB) + { OpcodeByte = 171u + Opcode = Opcode.BTS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 16; Reg(16, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 171u + Opcode = Opcode.BTS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 32; Reg(32, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 171u + Opcode = Opcode.BTS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 64; Reg(64, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 172(0xAC) + { OpcodeByte = 172u + Opcode = Opcode.SHRD + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 16; Reg(16, RegBit); Imm 8 |] + OpEn = OpEn.MRI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 172u + Opcode = Opcode.SHRD + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 32; Reg(32, RegBit); Imm 8 |] + OpEn = OpEn.MRI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 172u + Opcode = Opcode.SHRD + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 64; Reg(64, RegBit); Imm 8 |] + OpEn = OpEn.MRI + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 173(0xAD) + { OpcodeByte = 173u + Opcode = Opcode.SHRD + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 16; Reg(16, RegBit); FixedReg(Register.CL) |] + OpEn = OpEn.MRC + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 173u + Opcode = Opcode.SHRD + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 32; Reg(32, RegBit); FixedReg(Register.CL) |] + OpEn = OpEn.MRC + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 173u + Opcode = Opcode.SHRD + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 64; Reg(64, RegBit); FixedReg(Register.CL) |] + OpEn = OpEn.MRC + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 174(0xAE) + { OpcodeByte = 174u + Opcode = Opcode.CLFLUSH + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp7 OpMem + Operands = [| Mem 8 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 174u + Opcode = Opcode.CLFLUSHOPT + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp7 OpMem + Operands = [| Mem 8 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 174u + Opcode = Opcode.CLRSSBSY + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp6 OpMem + Operands = [| Mem 64 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 174u + Opcode = Opcode.CLWB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp6 OpMem + Operands = [| Mem 8 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 174u + Opcode = Opcode.FXRSTOR + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp1 OpMem + Operands = [| Mem 0 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 174u + Opcode = Opcode.FXRSTOR64 + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp1 OpMem + Operands = [| Mem 0 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 174u + Opcode = Opcode.FXSAVE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpMem + Operands = [| Mem 0 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 174u + Opcode = Opcode.FXSAVE64 + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpMem + Operands = [| Mem 0 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 174u + Opcode = Opcode.INCSSPD + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp5 OpReg + Operands = [| Reg(32, RMBit) |] + OpEn = OpEn.R + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 174u + Opcode = Opcode.INCSSPQ + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp5 OpReg + Operands = [| Reg(64, RMBit) |] + OpEn = OpEn.R + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 174u + Opcode = Opcode.LDMXCSR + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp2 OpMem + Operands = [| Mem 32 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 174u + Opcode = Opcode.LFENCE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xE8uy + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 174u + Opcode = Opcode.MFENCE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xF0uy + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 174u + Opcode = Opcode.PTWRITE + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 174u + Opcode = Opcode.PTWRITE + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 174u + Opcode = Opcode.RDFSBASE + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpReg + Operands = [| Reg(32, RMBit) |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Invalid + TupleType = TupleType.NA } + { OpcodeByte = 174u + Opcode = Opcode.RDFSBASE + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpReg + Operands = [| Reg(64, RMBit) |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Invalid + TupleType = TupleType.NA } + { OpcodeByte = 174u + Opcode = Opcode.RDGSBASE + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp1 OpReg + Operands = [| Reg(32, RMBit) |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Invalid + TupleType = TupleType.NA } + { OpcodeByte = 174u + Opcode = Opcode.RDGSBASE + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp1 OpReg + Operands = [| Reg(64, RMBit) |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Invalid + TupleType = TupleType.NA } + { OpcodeByte = 174u + Opcode = Opcode.SFENCE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xF8uy + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 174u + Opcode = Opcode.STMXCSR + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp3 OpMem + Operands = [| Mem 32 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 174u + Opcode = Opcode.TPAUSE + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp6 OpReg + Operands = [| Reg(32, RMBit) |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 174u + Opcode = Opcode.UMONITOR + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp6 OpRegMem + Operands = [| RegAddr |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 174u + Opcode = Opcode.UMWAIT + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp6 OpReg + Operands = [| Reg(32, RMBit) |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 174u + Opcode = Opcode.WRFSBASE + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp2 OpReg + Operands = [| Reg(32, RMBit) |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Invalid + TupleType = TupleType.NA } + { OpcodeByte = 174u + Opcode = Opcode.WRFSBASE + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp2 OpReg + Operands = [| Reg(64, RMBit) |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Invalid + TupleType = TupleType.NA } + { OpcodeByte = 174u + Opcode = Opcode.WRGSBASE + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp3 OpReg + Operands = [| Reg(32, RMBit) |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Invalid + TupleType = TupleType.NA } + { OpcodeByte = 174u + Opcode = Opcode.WRGSBASE + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp3 OpReg + Operands = [| Reg(64, RMBit) |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Invalid + TupleType = TupleType.NA } + { OpcodeByte = 174u + Opcode = Opcode.XRSTOR + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp5 OpMem + Operands = [| Mem 0 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 174u + Opcode = Opcode.XRSTOR64 + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp5 OpMem + Operands = [| Mem 0 |] + OpEn = OpEn.M + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 174u + Opcode = Opcode.XSAVE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpMem + Operands = [| Mem 0 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 174u + Opcode = Opcode.XSAVE64 + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpMem + Operands = [| Mem 0 |] + OpEn = OpEn.M + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 174u + Opcode = Opcode.XSAVEOPT + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp6 OpMem + Operands = [| Mem 0 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 174u + Opcode = Opcode.XSAVEOPT64 + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp6 OpMem + Operands = [| Mem 0 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 175(0xAF) + { OpcodeByte = 175u + Opcode = Opcode.IMUL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 175u + Opcode = Opcode.IMUL + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 175u + Opcode = Opcode.IMUL + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 176(0xB0) + { OpcodeByte = 176u + Opcode = Opcode.CMPXCHG + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 8; Reg(8, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 177(0xB1) + { OpcodeByte = 177u + Opcode = Opcode.CMPXCHG + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 16; Reg(16, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 177u + Opcode = Opcode.CMPXCHG + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 32; Reg(32, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 177u + Opcode = Opcode.CMPXCHG + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 64; Reg(64, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 178(0xB2) + { OpcodeByte = 178u + Opcode = Opcode.LSS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); Mem 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 178u + Opcode = Opcode.LSS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); Mem 48 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 178u + Opcode = Opcode.LSS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); Mem 80 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 179(0xB3) + { OpcodeByte = 179u + Opcode = Opcode.BTR + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 16; Reg(16, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 179u + Opcode = Opcode.BTR + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 32; Reg(32, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 179u + Opcode = Opcode.BTR + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 64; Reg(64, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 180(0xB4) + { OpcodeByte = 180u + Opcode = Opcode.LFS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); Mem 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 180u + Opcode = Opcode.LFS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); Mem 48 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 180u + Opcode = Opcode.LFS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); Mem 80 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 181(0xB5) + { OpcodeByte = 181u + Opcode = Opcode.LGS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); Mem 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 181u + Opcode = Opcode.LGS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); Mem 48 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 181u + Opcode = Opcode.LGS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); Mem 80 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 182(0xB6) + { OpcodeByte = 182u + Opcode = Opcode.MOVZX + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 8 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 182u + Opcode = Opcode.MOVZX + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 8 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 182u + Opcode = Opcode.MOVZX + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 8 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 183(0xB7) + { OpcodeByte = 183u + Opcode = Opcode.MOVZX + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 183u + Opcode = Opcode.MOVZX + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 184(0xB8) + { OpcodeByte = 184u + Opcode = Opcode.POPCNT + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 184u + Opcode = Opcode.POPCNT + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 184u + Opcode = Opcode.POPCNT + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 185(0xB9) + { OpcodeByte = 185u + Opcode = Opcode.UD1 + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 186(0xBA) + { OpcodeByte = 186u + Opcode = Opcode.BT + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| RM 16; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 186u + Opcode = Opcode.BT + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| RM 32; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 186u + Opcode = Opcode.BT + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| RM 64; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 186u + Opcode = Opcode.BTC + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp7 OpRegMem + Operands = [| RM 16; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 186u + Opcode = Opcode.BTC + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp7 OpRegMem + Operands = [| RM 32; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 186u + Opcode = Opcode.BTC + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp7 OpRegMem + Operands = [| RM 64; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 186u + Opcode = Opcode.BTR + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp6 OpRegMem + Operands = [| RM 16; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 186u + Opcode = Opcode.BTR + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp6 OpRegMem + Operands = [| RM 32; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 186u + Opcode = Opcode.BTR + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp6 OpRegMem + Operands = [| RM 64; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 186u + Opcode = Opcode.BTS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp5 OpRegMem + Operands = [| RM 16; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 186u + Opcode = Opcode.BTS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp5 OpRegMem + Operands = [| RM 32; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 186u + Opcode = Opcode.BTS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp5 OpRegMem + Operands = [| RM 64; Imm 8 |] + OpEn = OpEn.MI + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 187(0xBB) + { OpcodeByte = 187u + Opcode = Opcode.BTC + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 16; Reg(16, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 187u + Opcode = Opcode.BTC + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 32; Reg(32, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 187u + Opcode = Opcode.BTC + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 64; Reg(64, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 188(0xBC) + { OpcodeByte = 188u + Opcode = Opcode.BSF + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 188u + Opcode = Opcode.BSF + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 188u + Opcode = Opcode.BSF + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 188u + Opcode = Opcode.TZCNT + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 188u + Opcode = Opcode.TZCNT + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 188u + Opcode = Opcode.TZCNT + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 189(0xBD) + { OpcodeByte = 189u + Opcode = Opcode.BSR + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 189u + Opcode = Opcode.BSR + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 189u + Opcode = Opcode.BSR + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 189u + Opcode = Opcode.LZCNT + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 189u + Opcode = Opcode.LZCNT + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 189u + Opcode = Opcode.LZCNT + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 190(0xBE) + { OpcodeByte = 190u + Opcode = Opcode.MOVSX + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); RM 8 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 190u + Opcode = Opcode.MOVSX + PrefixType = Legacy NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 8 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 190u + Opcode = Opcode.MOVSX + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 8 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 191(0xBF) + { OpcodeByte = 191u + Opcode = Opcode.MOVSX + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 191u + Opcode = Opcode.MOVSX + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 192(0xC0) + { OpcodeByte = 192u + Opcode = Opcode.XADD + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 8; Reg(8, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 193(0xC1) + { OpcodeByte = 193u + Opcode = Opcode.XADD + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 16; Reg(16, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 193u + Opcode = Opcode.XADD + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 32; Reg(32, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 193u + Opcode = Opcode.XADD + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 64; Reg(64, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 194(0xC2) + { OpcodeByte = 194u + Opcode = Opcode.CMPPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 194u + Opcode = Opcode.CMPPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 194u + Opcode = Opcode.CMPSD + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + RMdiff(128, 64) + Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 194u + Opcode = Opcode.CMPSS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + RMdiff(128, 32) + Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 195(0xC3) + { OpcodeByte = 195u + Opcode = Opcode.MOVNTI + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 32; Reg(32, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 195u + Opcode = Opcode.MOVNTI + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 64; Reg(64, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 196(0xC4) + { OpcodeByte = 196u + Opcode = Opcode.PINSRW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); RMdiff(32, 16); Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 196u + Opcode = Opcode.PINSRW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(32, 16); Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 197(0xC5) + { OpcodeByte = 197u + Opcode = Opcode.PEXTRW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); MMXReg(RMBit); Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 197u + Opcode = Opcode.PEXTRW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); Reg(128, RMBit); Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 198(0xC6) + { OpcodeByte = 198u + Opcode = Opcode.SHUFPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 198u + Opcode = Opcode.SHUFPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 199(0xC7) + { OpcodeByte = 199u + Opcode = Opcode.CMPXCHG8B + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp1 OpRegMem + Operands = [| Mem 64 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 199u + Opcode = Opcode.CMPXCHG16B + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp1 OpRegMem + Operands = [| Mem 128 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 199u + Opcode = Opcode.RDPID + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp7 OpRegMem + Operands = [| Reg(32, RMBit) |] + OpEn = OpEn.R + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 199u + Opcode = Opcode.RDPID + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp7 OpRegMem + Operands = [| Reg(64, RMBit) |] + OpEn = OpEn.R + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 199u + Opcode = Opcode.RDRAND + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp6 OpRegMem + Operands = [| Reg(16, RMBit) |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 199u + Opcode = Opcode.RDRAND + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp6 OpRegMem + Operands = [| Reg(32, RMBit) |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 199u + Opcode = Opcode.RDRAND + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp6 OpRegMem + Operands = [| Reg(64, RMBit) |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Invalid + TupleType = TupleType.NA } + { OpcodeByte = 199u + Opcode = Opcode.RDSEED + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp7 OpRegMem + Operands = [| Reg(16, RMBit) |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 199u + Opcode = Opcode.RDSEED + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp7 OpRegMem + Operands = [| Reg(32, RMBit) |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 199u + Opcode = Opcode.RDSEED + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp7 OpRegMem + Operands = [| Reg(64, RMBit) |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Invalid + TupleType = TupleType.NA } + { OpcodeByte = 199u + Opcode = Opcode.SENDUIPI + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp6 OpRegMem + Operands = [| Reg(32, RegBit) |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Invalid + TupleType = TupleType.NA } + { OpcodeByte = 199u + Opcode = Opcode.XRSTORS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp3 OpRegMem + Operands = [| Mem 0 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 199u + Opcode = Opcode.XRSTORS64 + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp3 OpRegMem + Operands = [| Mem 0 |] + OpEn = OpEn.M + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 199u + Opcode = Opcode.XSAVEC + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| Mem 0 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 199u + Opcode = Opcode.XSAVEC64 + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| Mem 0 |] + OpEn = OpEn.M + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 199u + Opcode = Opcode.XSAVES + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp5 OpRegMem + Operands = [| Mem 0 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 199u + Opcode = Opcode.XSAVES64 + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp5 OpRegMem + Operands = [| Mem 0 |] + OpEn = OpEn.M + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 200(0xC8) + { OpcodeByte = 200u + Opcode = Opcode.BSWAP + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 200u + Opcode = Opcode.BSWAP + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(64, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 201(0xC9) + { OpcodeByte = 201u + Opcode = Opcode.BSWAP + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 201u + Opcode = Opcode.BSWAP + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(64, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 202(0xCA) + { OpcodeByte = 202u + Opcode = Opcode.BSWAP + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 202u + Opcode = Opcode.BSWAP + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(64, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 203(0xCB) + { OpcodeByte = 203u + Opcode = Opcode.BSWAP + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 203u + Opcode = Opcode.BSWAP + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(64, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 204(0xCC) + { OpcodeByte = 204u + Opcode = Opcode.BSWAP + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 204u + Opcode = Opcode.BSWAP + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(64, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 205(0xCD) + { OpcodeByte = 205u + Opcode = Opcode.BSWAP + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 205u + Opcode = Opcode.BSWAP + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(64, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 206(0xCE) + { OpcodeByte = 206u + Opcode = Opcode.BSWAP + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 206u + Opcode = Opcode.BSWAP + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(64, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 207(0xCF) + { OpcodeByte = 207u + Opcode = Opcode.BSWAP + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(32, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 207u + Opcode = Opcode.BSWAP + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.NoModRM + Operands = [| Reg(64, OpRd) |] + OpEn = OpEn.O + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 208(0xD0) + { OpcodeByte = 208u + Opcode = Opcode.ADDSUBPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 208u + Opcode = Opcode.ADDSUBPS + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 209(0xD1) + { OpcodeByte = 209u + Opcode = Opcode.PSRLW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 209u + Opcode = Opcode.PSRLW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 210(0xD2) + { OpcodeByte = 210u + Opcode = Opcode.PSRLD + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 210u + Opcode = Opcode.PSRLD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 211(0xD3) + { OpcodeByte = 211u + Opcode = Opcode.PSRLQ + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 211u + Opcode = Opcode.PSRLQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 212(0xD4) + { OpcodeByte = 212u + Opcode = Opcode.PADDQ + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 212u + Opcode = Opcode.PADDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 213(0xD5) + { OpcodeByte = 213u + Opcode = Opcode.PMULLW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 213u + Opcode = Opcode.PMULLW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 214(0xD6) + { OpcodeByte = 214u + Opcode = Opcode.MOVDQ2Q + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); Reg(128, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 214u + Opcode = Opcode.MOVQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RMdiff(128, 64); Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 214u + Opcode = Opcode.MOVQ2DQ + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); MMXReg(RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 215(0xD7) + { OpcodeByte = 215u + Opcode = Opcode.PMOVMSKB + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); MMXReg(RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 215u + Opcode = Opcode.PMOVMSKB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); Reg(128, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 216(0xD8) + { OpcodeByte = 216u + Opcode = Opcode.PSUBUSB + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 216u + Opcode = Opcode.PSUBUSB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 217(0xD9) + { OpcodeByte = 217u + Opcode = Opcode.PSUBUSW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 217u + Opcode = Opcode.PSUBUSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 218(0xDA) + { OpcodeByte = 218u + Opcode = Opcode.PMINUB + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 218u + Opcode = Opcode.PMINUB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 219(0xDB) + { OpcodeByte = 219u + Opcode = Opcode.PAND + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 219u + Opcode = Opcode.PAND + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 220(0xDC) + { OpcodeByte = 220u + Opcode = Opcode.PADDUSB + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 220u + Opcode = Opcode.PADDUSB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 221(0xDD) + { OpcodeByte = 221u + Opcode = Opcode.PADDUSW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 221u + Opcode = Opcode.PADDUSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 222(0xDE) + { OpcodeByte = 222u + Opcode = Opcode.PMAXUB + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 222u + Opcode = Opcode.PMAXUB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 223(0xDF) + { OpcodeByte = 223u + Opcode = Opcode.PANDN + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 223u + Opcode = Opcode.PANDN + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 224(0xE0) + { OpcodeByte = 224u + Opcode = Opcode.PAVGB + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 224u + Opcode = Opcode.PAVGB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 225(0xE1) + { OpcodeByte = 225u + Opcode = Opcode.PSRAW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 225u + Opcode = Opcode.PSRAW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 226(0xE2) + { OpcodeByte = 226u + Opcode = Opcode.PSRAD + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 226u + Opcode = Opcode.PSRAD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 227(0xE3) + { OpcodeByte = 227u + Opcode = Opcode.PAVGW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 227u + Opcode = Opcode.PAVGW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 228(0xE4) + { OpcodeByte = 228u + Opcode = Opcode.PMULHUW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 228u + Opcode = Opcode.PMULHUW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 229(0xE5) + { OpcodeByte = 229u + Opcode = Opcode.PMULHW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 229u + Opcode = Opcode.PMULHW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 230(0xE6) + { OpcodeByte = 230u + Opcode = Opcode.CVTDQ2PD + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 230u + Opcode = Opcode.CVTPD2DQ + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 230u + Opcode = Opcode.CVTTPD2DQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 231(0xE7) + { OpcodeByte = 231u + Opcode = Opcode.MOVNTDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 128; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 231u + Opcode = Opcode.MOVNTQ + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 64; MMXReg(RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 232(0xE8) + { OpcodeByte = 232u + Opcode = Opcode.PSUBSB + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 232u + Opcode = Opcode.PSUBSB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 233(0xE9) + { OpcodeByte = 233u + Opcode = Opcode.PSUBSW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 233u + Opcode = Opcode.PSUBSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 234(0xEA) + { OpcodeByte = 234u + Opcode = Opcode.PMINSW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 234u + Opcode = Opcode.PMINSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 235(0xEB) + { OpcodeByte = 235u + Opcode = Opcode.POR + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 235u + Opcode = Opcode.POR + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 236(0xEC) + { OpcodeByte = 236u + Opcode = Opcode.PADDSB + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 236u + Opcode = Opcode.PADDSB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 237(0xED) + { OpcodeByte = 237u + Opcode = Opcode.PADDSW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 237u + Opcode = Opcode.PADDSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 238(0xEE) + { OpcodeByte = 238u + Opcode = Opcode.PMAXSW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 238u + Opcode = Opcode.PMAXSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 239(0xEF) + { OpcodeByte = 239u + Opcode = Opcode.PXOR + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 239u + Opcode = Opcode.PXOR + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 240(0xF0) + { OpcodeByte = 240u + Opcode = Opcode.LDDQU + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Mem 0 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 241(0xF1) + { OpcodeByte = 241u + Opcode = Opcode.PSLLW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 241u + Opcode = Opcode.PSLLW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 242(0xF2) + { OpcodeByte = 242u + Opcode = Opcode.PSLLD + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 242u + Opcode = Opcode.PSLLD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 243(0xF3) + { OpcodeByte = 243u + Opcode = Opcode.PSLLQ + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 243u + Opcode = Opcode.PSLLQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 244(0xF4) + { OpcodeByte = 244u + Opcode = Opcode.PMULUDQ + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 244u + Opcode = Opcode.PMULUDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 245(0xF5) + { OpcodeByte = 245u + Opcode = Opcode.PMADDWD + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 245u + Opcode = Opcode.PMADDWD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 246(0xF6) + { OpcodeByte = 246u + Opcode = Opcode.PSADBW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 246u + Opcode = Opcode.PSADBW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 247(0xF7) + { OpcodeByte = 247u + Opcode = Opcode.MASKMOVDQU + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 247u + Opcode = Opcode.MASKMOVQ + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MMXReg(RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 248(0xF8) + { OpcodeByte = 248u + Opcode = Opcode.PSUBB + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 248u + Opcode = Opcode.PSUBB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 249(0xF9) + { OpcodeByte = 249u + Opcode = Opcode.PSUBW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 249u + Opcode = Opcode.PSUBW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 250(0xFA) + { OpcodeByte = 250u + Opcode = Opcode.PSUBD + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 250u + Opcode = Opcode.PSUBD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 251(0xFB) + { OpcodeByte = 251u + Opcode = Opcode.PSUBQ + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 251u + Opcode = Opcode.PSUBQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 252(0xFC) + { OpcodeByte = 252u + Opcode = Opcode.PADDB + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 252u + Opcode = Opcode.PADDB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 253(0xFD) + { OpcodeByte = 253u + Opcode = Opcode.PADDW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 253u + Opcode = Opcode.PADDW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 254(0xFE) + { OpcodeByte = 254u + Opcode = Opcode.PADDD + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 254u + Opcode = Opcode.PADDD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 255(0xFF) + { OpcodeByte = 255u + Opcode = Opcode.UD0 + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + |] + +let (norThree38: InstructionCore[][]) = + [| + [| // index 0(0x00) + { OpcodeByte = 0u + Opcode = Opcode.PSHUFB + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 0u + Opcode = Opcode.PSHUFB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 1(0x01) + { OpcodeByte = 1u + Opcode = Opcode.PHADDW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 1u + Opcode = Opcode.PHADDW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 2(0x02) + { OpcodeByte = 2u + Opcode = Opcode.PHADDD + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 2u + Opcode = Opcode.PHADDD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 3(0x03) + { OpcodeByte = 3u + Opcode = Opcode.PHADDSW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 3u + Opcode = Opcode.PHADDSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 4(0x04) + { OpcodeByte = 4u + Opcode = Opcode.PMADDUBSW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 4u + Opcode = Opcode.PMADDUBSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 5(0x05) + { OpcodeByte = 5u + Opcode = Opcode.PHSUBW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 5u + Opcode = Opcode.PHSUBW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 6(0x06) + { OpcodeByte = 6u + Opcode = Opcode.PHSUBD + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 6u + Opcode = Opcode.PHSUBD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 7(0x07) + { OpcodeByte = 7u + Opcode = Opcode.PHSUBSW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 7u + Opcode = Opcode.PHSUBSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 8(0x08) + { OpcodeByte = 8u + Opcode = Opcode.PSIGNB + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 8u + Opcode = Opcode.PSIGNB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 9(0x09) + { OpcodeByte = 9u + Opcode = Opcode.PSIGNW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 9u + Opcode = Opcode.PSIGNW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 10(0x0A) + { OpcodeByte = 10u + Opcode = Opcode.PSIGND + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 10u + Opcode = Opcode.PSIGND + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 11(0x0B) + { OpcodeByte = 11u + Opcode = Opcode.PMULHRSW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 11u + Opcode = Opcode.PMULHRSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 12(0x0C) + |] + [| // index 13(0x0D) + |] + [| // index 14(0x0E) + |] + [| // index 15(0x0F) + |] + [| // index 16(0x10) + { OpcodeByte = 16u + Opcode = Opcode.PBLENDVB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 17(0x11) + |] + [| // index 18(0x12) + |] + [| // index 19(0x13) + |] + [| // index 20(0x14) + { OpcodeByte = 20u + Opcode = Opcode.BLENDVPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM0 + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 21(0x15) + { OpcodeByte = 21u + Opcode = Opcode.BLENDVPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM0 + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 22(0x16) + |] + [| // index 23(0x17) + { OpcodeByte = 23u + Opcode = Opcode.PTEST + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 24(0x18) + |] + [| // index 25(0x19) + |] + [| // index 26(0x1A) + |] + [| // index 27(0x1B) + |] + [| // index 28(0x1C) + { OpcodeByte = 28u + Opcode = Opcode.PABSB + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 28u + Opcode = Opcode.PABSB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 29(0x1D) + { OpcodeByte = 29u + Opcode = Opcode.PABSW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 29u + Opcode = Opcode.PABSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 30(0x1E) + { OpcodeByte = 30u + Opcode = Opcode.PABSD + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 30u + Opcode = Opcode.PABSD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 31(0x1F) + |] + [| // index 32(0x20) + { OpcodeByte = 32u + Opcode = Opcode.PMOVSXBW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 33(0x21) + { OpcodeByte = 33u + Opcode = Opcode.PMOVSXBD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 34(0x22) + { OpcodeByte = 34u + Opcode = Opcode.PMOVSXBQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 16) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 35(0x23) + { OpcodeByte = 35u + Opcode = Opcode.PMOVSXWD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 36(0x24) + { OpcodeByte = 36u + Opcode = Opcode.PMOVSXWQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 37(0x25) + { OpcodeByte = 37u + Opcode = Opcode.PMOVSXDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 38(0x26) + |] + [| // index 39(0x27) + |] + [| // index 40(0x28) + { OpcodeByte = 40u + Opcode = Opcode.PMULDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 41(0x29) + { OpcodeByte = 41u + Opcode = Opcode.PCMPEQQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 42(0x2A) + { OpcodeByte = 42u + Opcode = Opcode.MOVNTDQA + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Mem 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 43(0x2B) + { OpcodeByte = 43u + Opcode = Opcode.PACKUSDW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 44(0x2C) + |] + [| // index 45(0x2D) + |] + [| // index 46(0x2E) + |] + [| // index 47(0x2F) + |] + [| // index 48(0x30) + { OpcodeByte = 48u + Opcode = Opcode.PMOVZXBW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 49(0x31) + { OpcodeByte = 49u + Opcode = Opcode.PMOVZXBD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 50(0x32) + { OpcodeByte = 50u + Opcode = Opcode.PMOVZXBQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 16) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 51(0x33) + { OpcodeByte = 51u + Opcode = Opcode.PMOVZXWD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 52(0x34) + { OpcodeByte = 52u + Opcode = Opcode.PMOVZXWQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 53(0x35) + { OpcodeByte = 53u + Opcode = Opcode.PMOVZXDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 54(0x36) + |] + [| // index 55(0x37) + { OpcodeByte = 55u + Opcode = Opcode.PCMPGTQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 56(0x38) + { OpcodeByte = 56u + Opcode = Opcode.PMINSB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 57(0x39) + { OpcodeByte = 57u + Opcode = Opcode.PMINSD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 58(0x3A) + { OpcodeByte = 58u + Opcode = Opcode.PMINUW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 59(0x3B) + { OpcodeByte = 59u + Opcode = Opcode.PMINUD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 60(0x3C) + { OpcodeByte = 60u + Opcode = Opcode.PMAXSB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 61(0x3D) + { OpcodeByte = 61u + Opcode = Opcode.PMAXSD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 62(0x3E) + { OpcodeByte = 62u + Opcode = Opcode.PMAXUW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 63(0x3F) + { OpcodeByte = 63u + Opcode = Opcode.PMAXUD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 64(0x40) + { OpcodeByte = 64u + Opcode = Opcode.PMULLD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 65(0x41) + { OpcodeByte = 65u + Opcode = Opcode.PHMINPOSUW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 66(0x42) + |] + [| // index 67(0x43) + |] + [| // index 68(0x44) + |] + [| // index 69(0x45) + |] + [| // index 70(0x46) + |] + [| // index 71(0x47) + |] + [| // index 72(0x48) + |] + [| // index 73(0x49) + |] + [| // index 74(0x4A) + |] + [| // index 75(0x4B) + |] + [| // index 76(0x4C) + |] + [| // index 77(0x4D) + |] + [| // index 78(0x4E) + |] + [| // index 79(0x4F) + |] + [| // index 80(0x50) + |] + [| // index 81(0x51) + |] + [| // index 82(0x52) + |] + [| // index 83(0x53) + |] + [| // index 84(0x54) + |] + [| // index 85(0x55) + |] + [| // index 86(0x56) + |] + [| // index 87(0x57) + |] + [| // index 88(0x58) + |] + [| // index 89(0x59) + |] + [| // index 90(0x5A) + |] + [| // index 91(0x5B) + |] + [| // index 92(0x5C) + |] + [| // index 93(0x5D) + |] + [| // index 94(0x5E) + |] + [| // index 95(0x5F) + |] + [| // index 96(0x60) + |] + [| // index 97(0x61) + |] + [| // index 98(0x62) + |] + [| // index 99(0x63) + |] + [| // index 100(0x64) + |] + [| // index 101(0x65) + |] + [| // index 102(0x66) + |] + [| // index 103(0x67) + |] + [| // index 104(0x68) + |] + [| // index 105(0x69) + |] + [| // index 106(0x6A) + |] + [| // index 107(0x6B) + |] + [| // index 108(0x6C) + |] + [| // index 109(0x6D) + |] + [| // index 110(0x6E) + |] + [| // index 111(0x6F) + |] + [| // index 112(0x70) + |] + [| // index 113(0x71) + |] + [| // index 114(0x72) + |] + [| // index 115(0x73) + |] + [| // index 116(0x74) + |] + [| // index 117(0x75) + |] + [| // index 118(0x76) + |] + [| // index 119(0x77) + |] + [| // index 120(0x78) + |] + [| // index 121(0x79) + |] + [| // index 122(0x7A) + |] + [| // index 123(0x7B) + |] + [| // index 124(0x7C) + |] + [| // index 125(0x7D) + |] + [| // index 126(0x7E) + |] + [| // index 127(0x7F) + |] + [| // index 128(0x80) + |] + [| // index 129(0x81) + |] + [| // index 130(0x82) + { OpcodeByte = 130u + Opcode = Opcode.INVPCID + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); Mem 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.NE + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 130u + Opcode = Opcode.INVPCID + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); Mem 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 131(0x83) + |] + [| // index 132(0x84) + |] + [| // index 133(0x85) + |] + [| // index 134(0x86) + |] + [| // index 135(0x87) + |] + [| // index 136(0x88) + |] + [| // index 137(0x89) + |] + [| // index 138(0x8A) + |] + [| // index 139(0x8B) + |] + [| // index 140(0x8C) + |] + [| // index 141(0x8D) + |] + [| // index 142(0x8E) + |] + [| // index 143(0x8F) + |] + [| // index 144(0x90) + |] + [| // index 145(0x91) + |] + [| // index 146(0x92) + |] + [| // index 147(0x93) + |] + [| // index 148(0x94) + |] + [| // index 149(0x95) + |] + [| // index 150(0x96) + |] + [| // index 151(0x97) + |] + [| // index 152(0x98) + |] + [| // index 153(0x99) + |] + [| // index 154(0x9A) + |] + [| // index 155(0x9B) + |] + [| // index 156(0x9C) + |] + [| // index 157(0x9D) + |] + [| // index 158(0x9E) + |] + [| // index 159(0x9F) + |] + [| // index 160(0xA0) + |] + [| // index 161(0xA1) + |] + [| // index 162(0xA2) + |] + [| // index 163(0xA3) + |] + [| // index 164(0xA4) + |] + [| // index 165(0xA5) + |] + [| // index 166(0xA6) + |] + [| // index 167(0xA7) + |] + [| // index 168(0xA8) + |] + [| // index 169(0xA9) + |] + [| // index 170(0xAA) + |] + [| // index 171(0xAB) + |] + [| // index 172(0xAC) + |] + [| // index 173(0xAD) + |] + [| // index 174(0xAE) + |] + [| // index 175(0xAF) + |] + [| // index 176(0xB0) + |] + [| // index 177(0xB1) + |] + [| // index 178(0xB2) + |] + [| // index 179(0xB3) + |] + [| // index 180(0xB4) + |] + [| // index 181(0xB5) + |] + [| // index 182(0xB6) + |] + [| // index 183(0xB7) + |] + [| // index 184(0xB8) + |] + [| // index 185(0xB9) + |] + [| // index 186(0xBA) + |] + [| // index 187(0xBB) + |] + [| // index 188(0xBC) + |] + [| // index 189(0xBD) + |] + [| // index 190(0xBE) + |] + [| // index 191(0xBF) + |] + [| // index 192(0xC0) + |] + [| // index 193(0xC1) + |] + [| // index 194(0xC2) + |] + [| // index 195(0xC3) + |] + [| // index 196(0xC4) + |] + [| // index 197(0xC5) + |] + [| // index 198(0xC6) + |] + [| // index 199(0xC7) + |] + [| // index 200(0xC8) + { OpcodeByte = 200u + Opcode = Opcode.SHA1NEXTE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 201(0xC9) + { OpcodeByte = 201u + Opcode = Opcode.SHA1MSG1 + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 202(0xCA) + { OpcodeByte = 202u + Opcode = Opcode.SHA1MSG2 + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 203(0xCB) + { OpcodeByte = 203u + Opcode = Opcode.SHA256RNDS2 + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 204(0xCC) + { OpcodeByte = 204u + Opcode = Opcode.SHA256MSG1 + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 205(0xCD) + { OpcodeByte = 205u + Opcode = Opcode.SHA256MSG2 + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 206(0xCE) + |] + [| // index 207(0xCF) + { OpcodeByte = 207u + Opcode = Opcode.GF2P8MULB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 208(0xD0) + |] + [| // index 209(0xD1) + |] + [| // index 210(0xD2) + |] + [| // index 211(0xD3) + |] + [| // index 212(0xD4) + |] + [| // index 213(0xD5) + |] + [| // index 214(0xD6) + |] + [| // index 215(0xD7) + |] + [| // index 216(0xD8) + { OpcodeByte = 216u + Opcode = Opcode.AESDECWIDE128KL + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp1 OpMem + Operands = [| Mem 384 |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 216u + Opcode = Opcode.AESDECWIDE256KL + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp3 OpMem + Operands = [| Mem 512 |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 216u + Opcode = Opcode.AESENCWIDE128KL + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp0 OpMem + Operands = [| Mem 384 |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 216u + Opcode = Opcode.AESENCWIDE256KL + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRMOp2 OpMem + Operands = [| Mem 512 |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 217(0xD9) + |] + [| // index 218(0xDA) + |] + [| // index 219(0xDB) + { OpcodeByte = 219u + Opcode = Opcode.AESIMC + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 220(0xDC) + { OpcodeByte = 220u + Opcode = Opcode.AESENC + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 220u + Opcode = Opcode.AESENC128KL + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpMem + Operands = [| Reg(128, RegBit); Mem 384 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 220u + Opcode = Opcode.LOADIWKEY + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 221(0xDD) + { OpcodeByte = 221u + Opcode = Opcode.AESDEC128KL + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpMem + Operands = [| Reg(128, RegBit); Mem 384 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 221u + Opcode = Opcode.AESENCLAST + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 222(0xDE) + { OpcodeByte = 222u + Opcode = Opcode.AESDEC + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 222u + Opcode = Opcode.AESENC256KL + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpMem + Operands = [| Reg(128, RegBit); Mem 512 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 223(0xDF) + { OpcodeByte = 223u + Opcode = Opcode.AESDEC256KL + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpMem + Operands = [| Reg(128, RegBit); Mem 512 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 223u + Opcode = Opcode.AESDECLAST + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 224(0xE0) + |] + [| // index 225(0xE1) + |] + [| // index 226(0xE2) + |] + [| // index 227(0xE3) + |] + [| // index 228(0xE4) + |] + [| // index 229(0xE5) + |] + [| // index 230(0xE6) + |] + [| // index 231(0xE7) + |] + [| // index 232(0xE8) + |] + [| // index 233(0xE9) + |] + [| // index 234(0xEA) + |] + [| // index 235(0xEB) + |] + [| // index 236(0xEC) + |] + [| // index 237(0xED) + |] + [| // index 238(0xEE) + |] + [| // index 239(0xEF) + |] + [| // index 240(0xF0) + { OpcodeByte = 240u + Opcode = Opcode.CRC32 + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 8 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 240u + Opcode = Opcode.CRC32 + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 8 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 240u + Opcode = Opcode.MOVBE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(16, RegBit); Mem 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 240u + Opcode = Opcode.MOVBE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); Mem 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 240u + Opcode = Opcode.MOVBE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); Mem 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 241(0xF1) + { OpcodeByte = 241u + Opcode = Opcode.CRC32 + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 241u + Opcode = Opcode.CRC32 + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 241u + Opcode = Opcode.CRC32 + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 241u + Opcode = Opcode.MOVBE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 16; Reg(16, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 241u + Opcode = Opcode.MOVBE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 32; Reg(32, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 241u + Opcode = Opcode.MOVBE + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 64; Reg(64, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 242(0xF2) + |] + [| // index 243(0xF3) + |] + [| // index 244(0xF4) + |] + [| // index 245(0xF5) + { OpcodeByte = 245u + Opcode = Opcode.WRUSSD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpMem + Operands = [| Mem 32; Reg(32, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 245u + Opcode = Opcode.WRUSSQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpMem + Operands = [| Mem 64; Reg(64, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 246(0xF6) + { OpcodeByte = 246u + Opcode = Opcode.ADCX + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 246u + Opcode = Opcode.ADCX + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 246u + Opcode = Opcode.ADOX + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 246u + Opcode = Opcode.ADOX + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 246u + Opcode = Opcode.WRSSD + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpMem + Operands = [| Mem 32; Reg(32, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 246u + Opcode = Opcode.WRSSQ + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpMem + Operands = [| Mem 64; Reg(64, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 247(0xF7) + |] + [| // index 248(0xF8) + { OpcodeByte = 248u + Opcode = Opcode.ENQCMD + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpMem + Operands = [| RegAddr; Mem 512 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 248u + Opcode = Opcode.ENQCMDS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpMem + Operands = [| RegAddr; Mem 512 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 248u + Opcode = Opcode.MOVDIR64B + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RegAddr; Mem 512 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 249(0xF9) + { OpcodeByte = 249u + Opcode = Opcode.MOVDIRI + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 32; Reg(32, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 249u + Opcode = Opcode.MOVDIRI + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 64; Reg(64, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 250(0xFA) + { OpcodeByte = 250u + Opcode = Opcode.ENCODEKEY128 + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); Reg(32, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 251(0xFB) + { OpcodeByte = 251u + Opcode = Opcode.ENCODEKEY256 + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); Reg(32, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 252(0xFC) + |] + [| // index 253(0xFD) + |] + [| // index 254(0xFE) + |] + [| // index 255(0xFF) + |] + |] + +let (norThree3A: InstructionCore[][]) = + [| + [| // index 0(0x00) + |] + [| // index 1(0x01) + |] + [| // index 2(0x02) + |] + [| // index 3(0x03) + |] + [| // index 4(0x04) + |] + [| // index 5(0x05) + |] + [| // index 6(0x06) + |] + [| // index 7(0x07) + |] + [| // index 8(0x08) + { OpcodeByte = 8u + Opcode = Opcode.ROUNDPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 9(0x09) + { OpcodeByte = 9u + Opcode = Opcode.ROUNDPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 10(0x0A) + { OpcodeByte = 10u + Opcode = Opcode.ROUNDSS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + RMdiff(128, 32) + Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 11(0x0B) + { OpcodeByte = 11u + Opcode = Opcode.ROUNDSD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + RMdiff(128, 64) + Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 12(0x0C) + { OpcodeByte = 12u + Opcode = Opcode.BLENDPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 13(0x0D) + { OpcodeByte = 13u + Opcode = Opcode.BLENDPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 14(0x0E) + { OpcodeByte = 14u + Opcode = Opcode.PBLENDW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 15(0x0F) + { OpcodeByte = 15u + Opcode = Opcode.PALIGNR + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| MMXReg(RegBit); MM 64; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 15u + Opcode = Opcode.PALIGNR + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 16(0x10) + |] + [| // index 17(0x11) + |] + [| // index 18(0x12) + |] + [| // index 19(0x13) + |] + [| // index 20(0x14) + { OpcodeByte = 20u + Opcode = Opcode.PEXTRB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RMdiff(32, 8); Reg(128, RegBit); Imm 8 |] + OpEn = OpEn.MRI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 21(0x15) + { OpcodeByte = 21u + Opcode = Opcode.PEXTRW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RMdiff(32, 16); Reg(128, RegBit); Imm 8 |] + OpEn = OpEn.MRI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 22(0x16) + { OpcodeByte = 22u + Opcode = Opcode.PEXTRD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 32; Reg(128, RegBit); Imm 8 |] + OpEn = OpEn.MRI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 22u + Opcode = Opcode.PEXTRQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 64; Reg(128, RegBit); Imm 8 |] + OpEn = OpEn.MRI + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 23(0x17) + { OpcodeByte = 23u + Opcode = Opcode.EXTRACTPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 32; Reg(128, RegBit); Imm 8 |] + OpEn = OpEn.MRI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 24(0x18) + |] + [| // index 25(0x19) + |] + [| // index 26(0x1A) + |] + [| // index 27(0x1B) + |] + [| // index 28(0x1C) + |] + [| // index 29(0x1D) + |] + [| // index 30(0x1E) + |] + [| // index 31(0x1F) + |] + [| // index 32(0x20) + { OpcodeByte = 32u + Opcode = Opcode.PINSRB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(32, 8); Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 33(0x21) + { OpcodeByte = 33u + Opcode = Opcode.INSERTPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + RMdiff(128, 32) + Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 34(0x22) + { OpcodeByte = 34u + Opcode = Opcode.PINSRD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 32; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 34u + Opcode = Opcode.PINSRQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.REXW + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 64; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 35(0x23) + |] + [| // index 36(0x24) + |] + [| // index 37(0x25) + |] + [| // index 38(0x26) + |] + [| // index 39(0x27) + |] + [| // index 40(0x28) + |] + [| // index 41(0x29) + |] + [| // index 42(0x2A) + |] + [| // index 43(0x2B) + |] + [| // index 44(0x2C) + |] + [| // index 45(0x2D) + |] + [| // index 46(0x2E) + |] + [| // index 47(0x2F) + |] + [| // index 48(0x30) + |] + [| // index 49(0x31) + |] + [| // index 50(0x32) + |] + [| // index 51(0x33) + |] + [| // index 52(0x34) + |] + [| // index 53(0x35) + |] + [| // index 54(0x36) + |] + [| // index 55(0x37) + |] + [| // index 56(0x38) + |] + [| // index 57(0x39) + |] + [| // index 58(0x3A) + |] + [| // index 59(0x3B) + |] + [| // index 60(0x3C) + |] + [| // index 61(0x3D) + |] + [| // index 62(0x3E) + |] + [| // index 63(0x3F) + |] + [| // index 64(0x40) + { OpcodeByte = 64u + Opcode = Opcode.DPPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 65(0x41) + { OpcodeByte = 65u + Opcode = Opcode.DPPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 66(0x42) + { OpcodeByte = 66u + Opcode = Opcode.MPSADBW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 67(0x43) + |] + [| // index 68(0x44) + { OpcodeByte = 68u + Opcode = Opcode.PCLMULQDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 69(0x45) + |] + [| // index 70(0x46) + |] + [| // index 71(0x47) + |] + [| // index 72(0x48) + |] + [| // index 73(0x49) + |] + [| // index 74(0x4A) + |] + [| // index 75(0x4B) + |] + [| // index 76(0x4C) + |] + [| // index 77(0x4D) + |] + [| // index 78(0x4E) + |] + [| // index 79(0x4F) + |] + [| // index 80(0x50) + |] + [| // index 81(0x51) + |] + [| // index 82(0x52) + |] + [| // index 83(0x53) + |] + [| // index 84(0x54) + |] + [| // index 85(0x55) + |] + [| // index 86(0x56) + |] + [| // index 87(0x57) + |] + [| // index 88(0x58) + |] + [| // index 89(0x59) + |] + [| // index 90(0x5A) + |] + [| // index 91(0x5B) + |] + [| // index 92(0x5C) + |] + [| // index 93(0x5D) + |] + [| // index 94(0x5E) + |] + [| // index 95(0x5F) + |] + [| // index 96(0x60) + { OpcodeByte = 96u + Opcode = Opcode.PCMPESTRM + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 97(0x61) + { OpcodeByte = 97u + Opcode = Opcode.PCMPESTRI + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 98(0x62) + { OpcodeByte = 98u + Opcode = Opcode.PCMPISTRM + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128; Imm 8 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 99(0x63) + { OpcodeByte = 99u + Opcode = Opcode.PCMPISTRI + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128; Imm 8 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 100(0x64) + |] + [| // index 101(0x65) + |] + [| // index 102(0x66) + |] + [| // index 103(0x67) + |] + [| // index 104(0x68) + |] + [| // index 105(0x69) + |] + [| // index 106(0x6A) + |] + [| // index 107(0x6B) + |] + [| // index 108(0x6C) + |] + [| // index 109(0x6D) + |] + [| // index 110(0x6E) + |] + [| // index 111(0x6F) + |] + [| // index 112(0x70) + |] + [| // index 113(0x71) + |] + [| // index 114(0x72) + |] + [| // index 115(0x73) + |] + [| // index 116(0x74) + |] + [| // index 117(0x75) + |] + [| // index 118(0x76) + |] + [| // index 119(0x77) + |] + [| // index 120(0x78) + |] + [| // index 121(0x79) + |] + [| // index 122(0x7A) + |] + [| // index 123(0x7B) + |] + [| // index 124(0x7C) + |] + [| // index 125(0x7D) + |] + [| // index 126(0x7E) + |] + [| // index 127(0x7F) + |] + [| // index 128(0x80) + |] + [| // index 129(0x81) + |] + [| // index 130(0x82) + |] + [| // index 131(0x83) + |] + [| // index 132(0x84) + |] + [| // index 133(0x85) + |] + [| // index 134(0x86) + |] + [| // index 135(0x87) + |] + [| // index 136(0x88) + |] + [| // index 137(0x89) + |] + [| // index 138(0x8A) + |] + [| // index 139(0x8B) + |] + [| // index 140(0x8C) + |] + [| // index 141(0x8D) + |] + [| // index 142(0x8E) + |] + [| // index 143(0x8F) + |] + [| // index 144(0x90) + |] + [| // index 145(0x91) + |] + [| // index 146(0x92) + |] + [| // index 147(0x93) + |] + [| // index 148(0x94) + |] + [| // index 149(0x95) + |] + [| // index 150(0x96) + |] + [| // index 151(0x97) + |] + [| // index 152(0x98) + |] + [| // index 153(0x99) + |] + [| // index 154(0x9A) + |] + [| // index 155(0x9B) + |] + [| // index 156(0x9C) + |] + [| // index 157(0x9D) + |] + [| // index 158(0x9E) + |] + [| // index 159(0x9F) + |] + [| // index 160(0xA0) + |] + [| // index 161(0xA1) + |] + [| // index 162(0xA2) + |] + [| // index 163(0xA3) + |] + [| // index 164(0xA4) + |] + [| // index 165(0xA5) + |] + [| // index 166(0xA6) + |] + [| // index 167(0xA7) + |] + [| // index 168(0xA8) + |] + [| // index 169(0xA9) + |] + [| // index 170(0xAA) + |] + [| // index 171(0xAB) + |] + [| // index 172(0xAC) + |] + [| // index 173(0xAD) + |] + [| // index 174(0xAE) + |] + [| // index 175(0xAF) + |] + [| // index 176(0xB0) + |] + [| // index 177(0xB1) + |] + [| // index 178(0xB2) + |] + [| // index 179(0xB3) + |] + [| // index 180(0xB4) + |] + [| // index 181(0xB5) + |] + [| // index 182(0xB6) + |] + [| // index 183(0xB7) + |] + [| // index 184(0xB8) + |] + [| // index 185(0xB9) + |] + [| // index 186(0xBA) + |] + [| // index 187(0xBB) + |] + [| // index 188(0xBC) + |] + [| // index 189(0xBD) + |] + [| // index 190(0xBE) + |] + [| // index 191(0xBF) + |] + [| // index 192(0xC0) + |] + [| // index 193(0xC1) + |] + [| // index 194(0xC2) + |] + [| // index 195(0xC3) + |] + [| // index 196(0xC4) + |] + [| // index 197(0xC5) + |] + [| // index 198(0xC6) + |] + [| // index 199(0xC7) + |] + [| // index 200(0xC8) + |] + [| // index 201(0xC9) + |] + [| // index 202(0xCA) + |] + [| // index 203(0xCB) + |] + [| // index 204(0xCC) + { OpcodeByte = 204u + Opcode = Opcode.SHA1RNDS4 + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 205(0xCD) + |] + [| // index 206(0xCE) + { OpcodeByte = 206u + Opcode = Opcode.GF2P8AFFINEQB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 207(0xCF) + { OpcodeByte = 207u + Opcode = Opcode.GF2P8AFFINEINVQB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 208(0xD0) + |] + [| // index 209(0xD1) + |] + [| // index 210(0xD2) + |] + [| // index 211(0xD3) + |] + [| // index 212(0xD4) + |] + [| // index 213(0xD5) + |] + [| // index 214(0xD6) + |] + [| // index 215(0xD7) + |] + [| // index 216(0xD8) + |] + [| // index 217(0xD9) + |] + [| // index 218(0xDA) + |] + [| // index 219(0xDB) + |] + [| // index 220(0xDC) + |] + [| // index 221(0xDD) + |] + [| // index 222(0xDE) + |] + [| // index 223(0xDF) + { OpcodeByte = 223u + Opcode = Opcode.AESKEYGENASSIST + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 224(0xE0) + |] + [| // index 225(0xE1) + |] + [| // index 226(0xE2) + |] + [| // index 227(0xE3) + |] + [| // index 228(0xE4) + |] + [| // index 229(0xE5) + |] + [| // index 230(0xE6) + |] + [| // index 231(0xE7) + |] + [| // index 232(0xE8) + |] + [| // index 233(0xE9) + |] + [| // index 234(0xEA) + |] + [| // index 235(0xEB) + |] + [| // index 236(0xEC) + |] + [| // index 237(0xED) + |] + [| // index 238(0xEE) + |] + [| // index 239(0xEF) + |] + [| // index 240(0xF0) + { OpcodeByte = 240u + Opcode = Opcode.HRESET + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.None + ModRM = ModRMType.FixedModRM 0xC0uy + Operands = [| Imm 8 |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 241(0xF1) + |] + [| // index 242(0xF2) + |] + [| // index 243(0xF3) + |] + [| // index 244(0xF4) + |] + [| // index 245(0xF5) + |] + [| // index 246(0xF6) + |] + [| // index 247(0xF7) + |] + [| // index 248(0xF8) + |] + [| // index 249(0xF9) + |] + [| // index 250(0xFA) + |] + [| // index 251(0xFB) + |] + [| // index 252(0xFC) + |] + [| // index 253(0xFD) + |] + [| // index 254(0xFE) + |] + [| // index 255(0xFF) + |] + |] + +let (vexTwo: InstructionCore[][]) = + [| + [| // index 0(0x00) + |] + [| // index 1(0x01) + |] + [| // index 2(0x02) + |] + [| // index 3(0x03) + |] + [| // index 4(0x04) + |] + [| // index 5(0x05) + |] + [| // index 6(0x06) + |] + [| // index 7(0x07) + |] + [| // index 8(0x08) + |] + [| // index 9(0x09) + |] + [| // index 10(0x0A) + |] + [| // index 11(0x0B) + |] + [| // index 12(0x0C) + |] + [| // index 13(0x0D) + |] + [| // index 14(0x0E) + |] + [| // index 15(0x0F) + |] + [| // index 16(0x10) + { OpcodeByte = 16u + Opcode = Opcode.VMOVSD + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + Reg(128, RMBit) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 16u + Opcode = Opcode.VMOVSD + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Mem 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 16u + Opcode = Opcode.VMOVSS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + Reg(128, RMBit) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 16u + Opcode = Opcode.VMOVSS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Mem 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 16u + Opcode = Opcode.VMOVUPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 16u + Opcode = Opcode.VMOVUPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 16u + Opcode = Opcode.VMOVUPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 16u + Opcode = Opcode.VMOVUPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 17(0x11) + { OpcodeByte = 17u + Opcode = Opcode.VMOVSD + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RMBit) + Reg(128, VVVV) + Reg(128, RegBit) |] + OpEn = OpEn.E + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 17u + Opcode = Opcode.VMOVSD + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 64; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 17u + Opcode = Opcode.VMOVSS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RMBit) + Reg(128, VVVV) + Reg(128, RegBit) |] + OpEn = OpEn.E + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 17u + Opcode = Opcode.VMOVSS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 32; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 17u + Opcode = Opcode.VMOVUPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 17u + Opcode = Opcode.VMOVUPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 256; Reg(256, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 17u + Opcode = Opcode.VMOVUPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 17u + Opcode = Opcode.VMOVUPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 256; Reg(256, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 18(0x12) + { OpcodeByte = 18u + Opcode = Opcode.VMOVDDUP + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 18u + Opcode = Opcode.VMOVDDUP + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 18u + Opcode = Opcode.VMOVHLPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + Reg(128, RMBit) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 18u + Opcode = Opcode.VMOVLPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RMBit); Reg(128, VVVV); Mem 64 |] + OpEn = OpEn.B + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 18u + Opcode = Opcode.VMOVLPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); Mem 64 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 18u + Opcode = Opcode.VMOVSLDUP + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 18u + Opcode = Opcode.VMOVSLDUP + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 19(0x13) + { OpcodeByte = 19u + Opcode = Opcode.VMOVLPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 64; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 19u + Opcode = Opcode.VMOVLPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 64; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 20(0x14) + { OpcodeByte = 20u + Opcode = Opcode.VUNPCKLPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 20u + Opcode = Opcode.VUNPCKLPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 20u + Opcode = Opcode.VUNPCKLPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 20u + Opcode = Opcode.VUNPCKLPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 21(0x15) + { OpcodeByte = 21u + Opcode = Opcode.VUNPCKHPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 21u + Opcode = Opcode.VUNPCKHPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 21u + Opcode = Opcode.VUNPCKHPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 21u + Opcode = Opcode.VUNPCKHPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 22(0x16) + { OpcodeByte = 22u + Opcode = Opcode.VMOVHPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); Mem 64 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 22u + Opcode = Opcode.VMOVHPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); Mem 64 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 22u + Opcode = Opcode.VMOVLHPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + Reg(128, RMBit) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 22u + Opcode = Opcode.VMOVSHDUP + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 22u + Opcode = Opcode.VMOVSHDUP + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 23(0x17) + { OpcodeByte = 23u + Opcode = Opcode.VMOVHPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 64; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 23u + Opcode = Opcode.VMOVHPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 64; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 24(0x18) + |] + [| // index 25(0x19) + |] + [| // index 26(0x1A) + |] + [| // index 27(0x1B) + |] + [| // index 28(0x1C) + |] + [| // index 29(0x1D) + |] + [| // index 30(0x1E) + |] + [| // index 31(0x1F) + |] + [| // index 32(0x20) + |] + [| // index 33(0x21) + |] + [| // index 34(0x22) + |] + [| // index 35(0x23) + |] + [| // index 36(0x24) + |] + [| // index 37(0x25) + |] + [| // index 38(0x26) + |] + [| // index 39(0x27) + |] + [| // index 40(0x28) + { OpcodeByte = 40u + Opcode = Opcode.VMOVAPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 40u + Opcode = Opcode.VMOVAPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 40u + Opcode = Opcode.VMOVAPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 40u + Opcode = Opcode.VMOVAPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 41(0x29) + { OpcodeByte = 41u + Opcode = Opcode.VMOVAPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 41u + Opcode = Opcode.VMOVAPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 256; Reg(256, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 41u + Opcode = Opcode.VMOVAPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 41u + Opcode = Opcode.VMOVAPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 256; Reg(256, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 42(0x2A) + { OpcodeByte = 42u + Opcode = Opcode.VCVTSI2SD + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 32 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 42u + Opcode = Opcode.VCVTSI2SD + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 64 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 42u + Opcode = Opcode.VCVTSI2SS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 32 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 42u + Opcode = Opcode.VCVTSI2SS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 64 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 43(0x2B) + { OpcodeByte = 43u + Opcode = Opcode.VMOVNTPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 128; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 43u + Opcode = Opcode.VMOVNTPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 256; Reg(256, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 43u + Opcode = Opcode.VMOVNTPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 128; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 43u + Opcode = Opcode.VMOVNTPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 256; Reg(256, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 44(0x2C) + { OpcodeByte = 44u + Opcode = Opcode.VCVTTSD2SI + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 44u + Opcode = Opcode.VCVTTSD2SI + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.Tuple1Fixed } + { OpcodeByte = 44u + Opcode = Opcode.VCVTTSS2SI + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RMdiff(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 44u + Opcode = Opcode.VCVTTSS2SI + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RMdiff(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 45(0x2D) + { OpcodeByte = 45u + Opcode = Opcode.VCVTSD2SI + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 45u + Opcode = Opcode.VCVTSD2SI + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 45u + Opcode = Opcode.VCVTSS2SI + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RMdiff(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 45u + Opcode = Opcode.VCVTSS2SI + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RMdiff(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 46(0x2E) + { OpcodeByte = 46u + Opcode = Opcode.VUCOMISD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 46u + Opcode = Opcode.VUCOMISS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 47(0x2F) + { OpcodeByte = 47u + Opcode = Opcode.VCOMISD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 47u + Opcode = Opcode.VCOMISS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 48(0x30) + |] + [| // index 49(0x31) + |] + [| // index 50(0x32) + |] + [| // index 51(0x33) + |] + [| // index 52(0x34) + |] + [| // index 53(0x35) + |] + [| // index 54(0x36) + |] + [| // index 55(0x37) + |] + [| // index 56(0x38) + |] + [| // index 57(0x39) + |] + [| // index 58(0x3A) + |] + [| // index 59(0x3B) + |] + [| // index 60(0x3C) + |] + [| // index 61(0x3D) + |] + [| // index 62(0x3E) + |] + [| // index 63(0x3F) + |] + [| // index 64(0x40) + |] + [| // index 65(0x41) + { OpcodeByte = 65u + Opcode = Opcode.KANDW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); OpMaskReg(VVVV); OpMaskReg(RMBit) |] + OpEn = OpEn.RVR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 65u + Opcode = Opcode.KANDB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); OpMaskReg(VVVV); OpMaskReg(RMBit) |] + OpEn = OpEn.RVR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 65u + Opcode = Opcode.KANDQ + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); OpMaskReg(VVVV); OpMaskReg(RMBit) |] + OpEn = OpEn.RVR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 65u + Opcode = Opcode.KANDD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); OpMaskReg(VVVV); OpMaskReg(RMBit) |] + OpEn = OpEn.RVR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 66(0x42) + { OpcodeByte = 66u + Opcode = Opcode.KANDNW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); OpMaskReg(VVVV); OpMaskReg(RMBit) |] + OpEn = OpEn.RVR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 66u + Opcode = Opcode.KANDNB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); OpMaskReg(VVVV); OpMaskReg(RMBit) |] + OpEn = OpEn.RVR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 66u + Opcode = Opcode.KANDNQ + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); OpMaskReg(VVVV); OpMaskReg(RMBit) |] + OpEn = OpEn.RVR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 66u + Opcode = Opcode.KANDND + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); OpMaskReg(VVVV); OpMaskReg(RMBit) |] + OpEn = OpEn.RVR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 67(0x43) + |] + [| // index 68(0x44) + { OpcodeByte = 68u + Opcode = Opcode.KNOTW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); OpMaskReg(RMBit) |] + OpEn = OpEn.RR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 68u + Opcode = Opcode.KNOTB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); OpMaskReg(RMBit) |] + OpEn = OpEn.RR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 68u + Opcode = Opcode.KNOTQ + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); OpMaskReg(RMBit) |] + OpEn = OpEn.RR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 68u + Opcode = Opcode.KNOTD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); OpMaskReg(RMBit) |] + OpEn = OpEn.RR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 69(0x45) + { OpcodeByte = 69u + Opcode = Opcode.KORW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); OpMaskReg(VVVV); OpMaskReg(RMBit) |] + OpEn = OpEn.RVR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 69u + Opcode = Opcode.KORB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); OpMaskReg(VVVV); OpMaskReg(RMBit) |] + OpEn = OpEn.RVR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 69u + Opcode = Opcode.KORQ + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); OpMaskReg(VVVV); OpMaskReg(RMBit) |] + OpEn = OpEn.RVR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 69u + Opcode = Opcode.KORD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); OpMaskReg(VVVV); OpMaskReg(RMBit) |] + OpEn = OpEn.RVR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 70(0x46) + { OpcodeByte = 70u + Opcode = Opcode.KXNORW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); OpMaskReg(VVVV); OpMaskReg(RMBit) |] + OpEn = OpEn.RVR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 70u + Opcode = Opcode.KXNORB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); OpMaskReg(VVVV); OpMaskReg(RMBit) |] + OpEn = OpEn.RVR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 70u + Opcode = Opcode.KXNORQ + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); OpMaskReg(VVVV); OpMaskReg(RMBit) |] + OpEn = OpEn.RVR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 70u + Opcode = Opcode.KXNORD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); OpMaskReg(VVVV); OpMaskReg(RMBit) |] + OpEn = OpEn.RVR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 71(0x47) + { OpcodeByte = 71u + Opcode = Opcode.KXORW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); OpMaskReg(VVVV); OpMaskReg(RMBit) |] + OpEn = OpEn.RVR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 71u + Opcode = Opcode.KXORB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); OpMaskReg(VVVV); OpMaskReg(RMBit) |] + OpEn = OpEn.RVR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 71u + Opcode = Opcode.KXORQ + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); OpMaskReg(VVVV); OpMaskReg(RMBit) |] + OpEn = OpEn.RVR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 71u + Opcode = Opcode.KXORD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); OpMaskReg(VVVV); OpMaskReg(RMBit) |] + OpEn = OpEn.RVR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 72(0x48) + |] + [| // index 73(0x49) + |] + [| // index 74(0x4A) + { OpcodeByte = 74u + Opcode = Opcode.KADDW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); OpMaskReg(VVVV); OpMaskReg(RMBit) |] + OpEn = OpEn.RVR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 74u + Opcode = Opcode.KADDB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); OpMaskReg(VVVV); OpMaskReg(RMBit) |] + OpEn = OpEn.RVR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 74u + Opcode = Opcode.KADDQ + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); OpMaskReg(VVVV); OpMaskReg(RMBit) |] + OpEn = OpEn.RVR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 74u + Opcode = Opcode.KADDD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); OpMaskReg(VVVV); OpMaskReg(RMBit) |] + OpEn = OpEn.RVR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 75(0x4B) + { OpcodeByte = 75u + Opcode = Opcode.KUNPCKBW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); OpMaskReg(VVVV); OpMaskReg(RMBit) |] + OpEn = OpEn.RVR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 75u + Opcode = Opcode.KUNPCKWD + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); OpMaskReg(VVVV); OpMaskReg(RMBit) |] + OpEn = OpEn.RVR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 75u + Opcode = Opcode.KUNPCKDQ + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); OpMaskReg(VVVV); OpMaskReg(RMBit) |] + OpEn = OpEn.RVR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 76(0x4C) + |] + [| // index 77(0x4D) + |] + [| // index 78(0x4E) + |] + [| // index 79(0x4F) + |] + [| // index 80(0x50) + { OpcodeByte = 80u + Opcode = Opcode.VMOVMSKPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); Reg(128, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 80u + Opcode = Opcode.VMOVMSKPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); Reg(256, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 80u + Opcode = Opcode.VMOVMSKPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); Reg(128, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 80u + Opcode = Opcode.VMOVMSKPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); Reg(256, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 81(0x51) + { OpcodeByte = 81u + Opcode = Opcode.VSQRTPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 81u + Opcode = Opcode.VSQRTPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 81u + Opcode = Opcode.VSQRTPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 81u + Opcode = Opcode.VSQRTPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 81u + Opcode = Opcode.VSQRTSD + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 81u + Opcode = Opcode.VSQRTSS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 82(0x52) + { OpcodeByte = 82u + Opcode = Opcode.VRSQRTPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 82u + Opcode = Opcode.VRSQRTPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 82u + Opcode = Opcode.VRSQRTSS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 83(0x53) + { OpcodeByte = 83u + Opcode = Opcode.VRCPPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 83u + Opcode = Opcode.VRCPPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 83u + Opcode = Opcode.VRCPSS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 84(0x54) + { OpcodeByte = 84u + Opcode = Opcode.VANDPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 84u + Opcode = Opcode.VANDPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 84u + Opcode = Opcode.VANDPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 84u + Opcode = Opcode.VANDPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 85(0x55) + { OpcodeByte = 85u + Opcode = Opcode.VANDNPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 85u + Opcode = Opcode.VANDNPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 85u + Opcode = Opcode.VANDNPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 85u + Opcode = Opcode.VANDNPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 86(0x56) + { OpcodeByte = 86u + Opcode = Opcode.VORPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 86u + Opcode = Opcode.VORPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 86u + Opcode = Opcode.VORPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 86u + Opcode = Opcode.VORPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 87(0x57) + { OpcodeByte = 87u + Opcode = Opcode.VXORPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 87u + Opcode = Opcode.VXORPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 87u + Opcode = Opcode.VXORPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 87u + Opcode = Opcode.VXORPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 88(0x58) + { OpcodeByte = 88u + Opcode = Opcode.VADDPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 88u + Opcode = Opcode.VADDPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 88u + Opcode = Opcode.VADDPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 88u + Opcode = Opcode.VADDPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 88u + Opcode = Opcode.VADDSD + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 88u + Opcode = Opcode.VADDSS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 89(0x59) + { OpcodeByte = 89u + Opcode = Opcode.VMULPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 89u + Opcode = Opcode.VMULPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 89u + Opcode = Opcode.VMULPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 89u + Opcode = Opcode.VMULPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 89u + Opcode = Opcode.VMULSD + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 89u + Opcode = Opcode.VMULSS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 90(0x5A) + { OpcodeByte = 90u + Opcode = Opcode.VCVTPD2PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 90u + Opcode = Opcode.VCVTPD2PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 90u + Opcode = Opcode.VCVTPS2PD + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 90u + Opcode = Opcode.VCVTPS2PD + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 90u + Opcode = Opcode.VCVTSD2SS + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 90u + Opcode = Opcode.VCVTSS2SD + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 91(0x5B) + { OpcodeByte = 91u + Opcode = Opcode.VCVTDQ2PS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 91u + Opcode = Opcode.VCVTDQ2PS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 91u + Opcode = Opcode.VCVTPS2DQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 91u + Opcode = Opcode.VCVTPS2DQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 91u + Opcode = Opcode.VCVTTPS2DQ + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 91u + Opcode = Opcode.VCVTTPS2DQ + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 92(0x5C) + { OpcodeByte = 92u + Opcode = Opcode.VSUBPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 92u + Opcode = Opcode.VSUBPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 92u + Opcode = Opcode.VSUBPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 92u + Opcode = Opcode.VSUBPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 92u + Opcode = Opcode.VSUBSD + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 92u + Opcode = Opcode.VSUBSS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 93(0x5D) + { OpcodeByte = 93u + Opcode = Opcode.VMINPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 93u + Opcode = Opcode.VMINPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 93u + Opcode = Opcode.VMINPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 93u + Opcode = Opcode.VMINPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 93u + Opcode = Opcode.VMINSD + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 93u + Opcode = Opcode.VMINSS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 94(0x5E) + { OpcodeByte = 94u + Opcode = Opcode.VDIVPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 94u + Opcode = Opcode.VDIVPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 94u + Opcode = Opcode.VDIVPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 94u + Opcode = Opcode.VDIVPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 94u + Opcode = Opcode.VDIVSD + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 94u + Opcode = Opcode.VDIVSS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 95(0x5F) + { OpcodeByte = 95u + Opcode = Opcode.VMAXPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 95u + Opcode = Opcode.VMAXPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 95u + Opcode = Opcode.VMAXPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 95u + Opcode = Opcode.VMAXPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 95u + Opcode = Opcode.VMAXSD + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 95u + Opcode = Opcode.VMAXSS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 96(0x60) + { OpcodeByte = 96u + Opcode = Opcode.VPUNPCKLBW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 96u + Opcode = Opcode.VPUNPCKLBW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 97(0x61) + { OpcodeByte = 97u + Opcode = Opcode.VPUNPCKLWD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 97u + Opcode = Opcode.VPUNPCKLWD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 98(0x62) + { OpcodeByte = 98u + Opcode = Opcode.VPUNPCKLDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 98u + Opcode = Opcode.VPUNPCKLDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 99(0x63) + { OpcodeByte = 99u + Opcode = Opcode.VPACKSSWB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 99u + Opcode = Opcode.VPACKSSWB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 100(0x64) + { OpcodeByte = 100u + Opcode = Opcode.VPCMPGTB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 100u + Opcode = Opcode.VPCMPGTB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 101(0x65) + { OpcodeByte = 101u + Opcode = Opcode.VPCMPGTW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 101u + Opcode = Opcode.VPCMPGTW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 102(0x66) + { OpcodeByte = 102u + Opcode = Opcode.VPCMPGTD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 102u + Opcode = Opcode.VPCMPGTD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 103(0x67) + { OpcodeByte = 103u + Opcode = Opcode.VPACKUSWB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 103u + Opcode = Opcode.VPACKUSWB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 104(0x68) + { OpcodeByte = 104u + Opcode = Opcode.VPUNPCKHBW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 104u + Opcode = Opcode.VPUNPCKHBW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 105(0x69) + { OpcodeByte = 105u + Opcode = Opcode.VPUNPCKHWD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 105u + Opcode = Opcode.VPUNPCKHWD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 106(0x6A) + { OpcodeByte = 106u + Opcode = Opcode.VPUNPCKHDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 106u + Opcode = Opcode.VPUNPCKHDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 107(0x6B) + { OpcodeByte = 107u + Opcode = Opcode.VPACKSSDW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 107u + Opcode = Opcode.VPACKSSDW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 108(0x6C) + { OpcodeByte = 108u + Opcode = Opcode.VPUNPCKLQDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 108u + Opcode = Opcode.VPUNPCKLQDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 109(0x6D) + { OpcodeByte = 109u + Opcode = Opcode.VPUNPCKHQDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 109u + Opcode = Opcode.VPUNPCKHQDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 110(0x6E) + { OpcodeByte = 110u + Opcode = Opcode.VMOVD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 110u + Opcode = Opcode.VMOVQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 111(0x6F) + { OpcodeByte = 111u + Opcode = Opcode.VMOVDQA + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 111u + Opcode = Opcode.VMOVDQA + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 111u + Opcode = Opcode.VMOVDQU + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 111u + Opcode = Opcode.VMOVDQU + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 112(0x70) + { OpcodeByte = 112u + Opcode = Opcode.VPSHUFD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 112u + Opcode = Opcode.VPSHUFD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 112u + Opcode = Opcode.VPSHUFHW + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 112u + Opcode = Opcode.VPSHUFHW + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 112u + Opcode = Opcode.VPSHUFLW + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 112u + Opcode = Opcode.VPSHUFLW + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 113(0x71) + { OpcodeByte = 113u + Opcode = Opcode.VPSLLW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRMOp6 OpRegMem + Operands = [| Reg(128, VVVV); Reg(128, RMBit); Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 113u + Opcode = Opcode.VPSLLW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRMOp6 OpRegMem + Operands = [| Reg(256, VVVV); Reg(256, RMBit); Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 113u + Opcode = Opcode.VPSRAW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| Reg(128, VVVV); Reg(128, RMBit); Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 113u + Opcode = Opcode.VPSRAW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| Reg(256, VVVV); Reg(256, RMBit); Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 113u + Opcode = Opcode.VPSRLW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| Reg(128, VVVV); Reg(128, RMBit); Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 113u + Opcode = Opcode.VPSRLW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| Reg(256, VVVV); Reg(256, RMBit); Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 114(0x72) + { OpcodeByte = 114u + Opcode = Opcode.VPSLLD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRMOp6 OpRegMem + Operands = [| Reg(128, VVVV); Reg(128, RMBit); Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 114u + Opcode = Opcode.VPSLLD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRMOp6 OpRegMem + Operands = [| Reg(256, VVVV); Reg(256, RMBit); Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 114u + Opcode = Opcode.VPSRAD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| Reg(128, VVVV); Reg(128, RMBit); Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 114u + Opcode = Opcode.VPSRAD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| Reg(256, VVVV); Reg(256, RMBit); Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 114u + Opcode = Opcode.VPSRLD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| Reg(128, VVVV); Reg(128, RMBit); Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 114u + Opcode = Opcode.VPSRLD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| Reg(256, VVVV); Reg(256, RMBit); Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 115(0x73) + { OpcodeByte = 115u + Opcode = Opcode.VPSLLDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRMOp7 OpRegMem + Operands = [| Reg(128, VVVV); Reg(128, RMBit); Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 115u + Opcode = Opcode.VPSLLDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRMOp7 OpRegMem + Operands = [| Reg(256, VVVV); Reg(256, RMBit); Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 115u + Opcode = Opcode.VPSLLQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRMOp6 OpRegMem + Operands = [| Reg(128, VVVV); Reg(128, RMBit); Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 115u + Opcode = Opcode.VPSLLQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRMOp6 OpRegMem + Operands = [| Reg(256, VVVV); Reg(256, RMBit); Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 115u + Opcode = Opcode.VPSRLDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRMOp3 OpRegMem + Operands = [| Reg(128, VVVV); Reg(128, RMBit); Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 115u + Opcode = Opcode.VPSRLDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRMOp3 OpRegMem + Operands = [| Reg(256, VVVV); Reg(256, RMBit); Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 115u + Opcode = Opcode.VPSRLQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| Reg(128, VVVV); Reg(128, RMBit); Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 115u + Opcode = Opcode.VPSRLQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| Reg(256, VVVV); Reg(256, RMBit); Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 116(0x74) + { OpcodeByte = 116u + Opcode = Opcode.VPCMPEQB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 116u + Opcode = Opcode.VPCMPEQB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 117(0x75) + { OpcodeByte = 117u + Opcode = Opcode.VPCMPEQW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 117u + Opcode = Opcode.VPCMPEQW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 118(0x76) + { OpcodeByte = 118u + Opcode = Opcode.VPCMPEQD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 118u + Opcode = Opcode.VPCMPEQD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 119(0x77) + { OpcodeByte = 119u + Opcode = Opcode.VZEROALL + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 119u + Opcode = Opcode.VZEROUPPER + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.ZO + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 120(0x78) + |] + [| // index 121(0x79) + |] + [| // index 122(0x7A) + |] + [| // index 123(0x7B) + |] + [| // index 124(0x7C) + { OpcodeByte = 124u + Opcode = Opcode.VHADDPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 124u + Opcode = Opcode.VHADDPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 124u + Opcode = Opcode.VHADDPS + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 124u + Opcode = Opcode.VHADDPS + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 125(0x7D) + { OpcodeByte = 125u + Opcode = Opcode.VHSUBPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 125u + Opcode = Opcode.VHSUBPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 125u + Opcode = Opcode.VHSUBPS + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 125u + Opcode = Opcode.VHSUBPS + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 126(0x7E) + { OpcodeByte = 126u + Opcode = Opcode.VMOVD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 32; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 126u + Opcode = Opcode.VMOVQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 64; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 126u + Opcode = Opcode.VMOVQ + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 127(0x7F) + { OpcodeByte = 127u + Opcode = Opcode.VMOVDQA + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 127u + Opcode = Opcode.VMOVDQA + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 256; Reg(256, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 127u + Opcode = Opcode.VMOVDQU + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 127u + Opcode = Opcode.VMOVDQU + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 256; Reg(256, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 128(0x80) + |] + [| // index 129(0x81) + |] + [| // index 130(0x82) + |] + [| // index 131(0x83) + |] + [| // index 132(0x84) + |] + [| // index 133(0x85) + |] + [| // index 134(0x86) + |] + [| // index 135(0x87) + |] + [| // index 136(0x88) + |] + [| // index 137(0x89) + |] + [| // index 138(0x8A) + |] + [| // index 139(0x8B) + |] + [| // index 140(0x8C) + |] + [| // index 141(0x8D) + |] + [| // index 142(0x8E) + |] + [| // index 143(0x8F) + |] + [| // index 144(0x90) + { OpcodeByte = 144u + Opcode = Opcode.KMOVW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); KM 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 144u + Opcode = Opcode.KMOVB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); KM 8 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 144u + Opcode = Opcode.KMOVQ + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); KM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 144u + Opcode = Opcode.KMOVD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); KM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 145(0x91) + { OpcodeByte = 145u + Opcode = Opcode.KMOVW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 16; OpMaskReg(RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 145u + Opcode = Opcode.KMOVB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 8; OpMaskReg(RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 145u + Opcode = Opcode.KMOVQ + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 64; OpMaskReg(RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 145u + Opcode = Opcode.KMOVD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 32; OpMaskReg(RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 146(0x92) + { OpcodeByte = 146u + Opcode = Opcode.KMOVW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); Reg(32, RMBit) |] + OpEn = OpEn.RR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 146u + Opcode = Opcode.KMOVB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); Reg(32, RMBit) |] + OpEn = OpEn.RR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 146u + Opcode = Opcode.KMOVQ + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); Reg(64, RMBit) |] + OpEn = OpEn.RR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Invalid + TupleType = TupleType.NA } + { OpcodeByte = 146u + Opcode = Opcode.KMOVD + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); Reg(32, RMBit) |] + OpEn = OpEn.RR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 147(0x93) + { OpcodeByte = 147u + Opcode = Opcode.KMOVW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); OpMaskReg(RMBit) |] + OpEn = OpEn.RR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 147u + Opcode = Opcode.KMOVB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); OpMaskReg(RMBit) |] + OpEn = OpEn.RR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 147u + Opcode = Opcode.KMOVQ + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); OpMaskReg(RMBit) |] + OpEn = OpEn.RR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Invalid + TupleType = TupleType.NA } + { OpcodeByte = 147u + Opcode = Opcode.KMOVD + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); OpMaskReg(RMBit) |] + OpEn = OpEn.RR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 148(0x94) + |] + [| // index 149(0x95) + |] + [| // index 150(0x96) + |] + [| // index 151(0x97) + |] + [| // index 152(0x98) + { OpcodeByte = 152u + Opcode = Opcode.KORTESTW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); OpMaskReg(RMBit) |] + OpEn = OpEn.RR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 152u + Opcode = Opcode.KORTESTB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); OpMaskReg(RMBit) |] + OpEn = OpEn.RR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 152u + Opcode = Opcode.KORTESTQ + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); OpMaskReg(RMBit) |] + OpEn = OpEn.RR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 152u + Opcode = Opcode.KORTESTD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); OpMaskReg(RMBit) |] + OpEn = OpEn.RR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 153(0x99) + { OpcodeByte = 153u + Opcode = Opcode.KTESTW + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); OpMaskReg(RMBit) |] + OpEn = OpEn.RR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 153u + Opcode = Opcode.KTESTB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); OpMaskReg(RMBit) |] + OpEn = OpEn.RR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 153u + Opcode = Opcode.KTESTQ + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); OpMaskReg(RMBit) |] + OpEn = OpEn.RR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 153u + Opcode = Opcode.KTESTD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); OpMaskReg(RMBit) |] + OpEn = OpEn.RR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 154(0x9A) + |] + [| // index 155(0x9B) + |] + [| // index 156(0x9C) + |] + [| // index 157(0x9D) + |] + [| // index 158(0x9E) + |] + [| // index 159(0x9F) + |] + [| // index 160(0xA0) + |] + [| // index 161(0xA1) + |] + [| // index 162(0xA2) + |] + [| // index 163(0xA3) + |] + [| // index 164(0xA4) + |] + [| // index 165(0xA5) + |] + [| // index 166(0xA6) + |] + [| // index 167(0xA7) + |] + [| // index 168(0xA8) + |] + [| // index 169(0xA9) + |] + [| // index 170(0xAA) + |] + [| // index 171(0xAB) + |] + [| // index 172(0xAC) + |] + [| // index 173(0xAD) + |] + [| // index 174(0xAE) + { OpcodeByte = 174u + Opcode = Opcode.VLDMXCSR + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| Mem 32 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 174u + Opcode = Opcode.VSTMXCSR + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRMOp3 OpRegMem + Operands = [| Mem 32 |] + OpEn = OpEn.M + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 175(0xAF) + |] + [| // index 176(0xB0) + |] + [| // index 177(0xB1) + |] + [| // index 178(0xB2) + |] + [| // index 179(0xB3) + |] + [| // index 180(0xB4) + |] + [| // index 181(0xB5) + |] + [| // index 182(0xB6) + |] + [| // index 183(0xB7) + |] + [| // index 184(0xB8) + |] + [| // index 185(0xB9) + |] + [| // index 186(0xBA) + |] + [| // index 187(0xBB) + |] + [| // index 188(0xBC) + |] + [| // index 189(0xBD) + |] + [| // index 190(0xBE) + |] + [| // index 191(0xBF) + |] + [| // index 192(0xC0) + |] + [| // index 193(0xC1) + |] + [| // index 194(0xC2) + { OpcodeByte = 194u + Opcode = Opcode.VCMPPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RM 128 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 194u + Opcode = Opcode.VCMPPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RM 256 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 194u + Opcode = Opcode.VCMPPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RM 128 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 194u + Opcode = Opcode.VCMPPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RM 256 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 194u + Opcode = Opcode.VCMPSD + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 64) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 194u + Opcode = Opcode.VCMPSS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 32) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 195(0xC3) + |] + [| // index 196(0xC4) + { OpcodeByte = 196u + Opcode = Opcode.VPINSRW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(32, 16) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 197(0xC5) + { OpcodeByte = 197u + Opcode = Opcode.VPEXTRW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); Reg(128, RMBit); Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 198(0xC6) + { OpcodeByte = 198u + Opcode = Opcode.VSHUFPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RM 128 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 198u + Opcode = Opcode.VSHUFPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RM 256 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 198u + Opcode = Opcode.VSHUFPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RM 128 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 198u + Opcode = Opcode.VSHUFPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RM 256 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 199(0xC7) + |] + [| // index 200(0xC8) + |] + [| // index 201(0xC9) + |] + [| // index 202(0xCA) + |] + [| // index 203(0xCB) + |] + [| // index 204(0xCC) + |] + [| // index 205(0xCD) + |] + [| // index 206(0xCE) + |] + [| // index 207(0xCF) + |] + [| // index 208(0xD0) + { OpcodeByte = 208u + Opcode = Opcode.VADDSUBPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 208u + Opcode = Opcode.VADDSUBPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 208u + Opcode = Opcode.VADDSUBPS + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 208u + Opcode = Opcode.VADDSUBPS + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 209(0xD1) + { OpcodeByte = 209u + Opcode = Opcode.VPSRLW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 209u + Opcode = Opcode.VPSRLW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 210(0xD2) + { OpcodeByte = 210u + Opcode = Opcode.VPSRLD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 210u + Opcode = Opcode.VPSRLD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 211(0xD3) + { OpcodeByte = 211u + Opcode = Opcode.VPSRLQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 211u + Opcode = Opcode.VPSRLQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 212(0xD4) + { OpcodeByte = 212u + Opcode = Opcode.VPADDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 212u + Opcode = Opcode.VPADDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 213(0xD5) + { OpcodeByte = 213u + Opcode = Opcode.VPMULLW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 213u + Opcode = Opcode.VPMULLW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 214(0xD6) + { OpcodeByte = 214u + Opcode = Opcode.VMOVQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RMdiff(128, 64); Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 215(0xD7) + { OpcodeByte = 215u + Opcode = Opcode.VPMOVMSKB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); Reg(128, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 215u + Opcode = Opcode.VPMOVMSKB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); Reg(256, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 216(0xD8) + { OpcodeByte = 216u + Opcode = Opcode.VPSUBUSB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 216u + Opcode = Opcode.VPSUBUSB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 217(0xD9) + { OpcodeByte = 217u + Opcode = Opcode.VPSUBUSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 217u + Opcode = Opcode.VPSUBUSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 218(0xDA) + { OpcodeByte = 218u + Opcode = Opcode.VPMINUB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 218u + Opcode = Opcode.VPMINUB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 219(0xDB) + { OpcodeByte = 219u + Opcode = Opcode.VPAND + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 219u + Opcode = Opcode.VPAND + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 220(0xDC) + { OpcodeByte = 220u + Opcode = Opcode.VPADDUSB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 220u + Opcode = Opcode.VPADDUSB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 221(0xDD) + { OpcodeByte = 221u + Opcode = Opcode.VPADDUSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 221u + Opcode = Opcode.VPADDUSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 222(0xDE) + { OpcodeByte = 222u + Opcode = Opcode.VPMAXUB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 222u + Opcode = Opcode.VPMAXUB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 223(0xDF) + { OpcodeByte = 223u + Opcode = Opcode.VPANDN + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 223u + Opcode = Opcode.VPANDN + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 224(0xE0) + { OpcodeByte = 224u + Opcode = Opcode.VPAVGB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 224u + Opcode = Opcode.VPAVGB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 225(0xE1) + { OpcodeByte = 225u + Opcode = Opcode.VPSRAW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 225u + Opcode = Opcode.VPSRAW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 226(0xE2) + { OpcodeByte = 226u + Opcode = Opcode.VPSRAD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 226u + Opcode = Opcode.VPSRAD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 227(0xE3) + { OpcodeByte = 227u + Opcode = Opcode.VPAVGW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 227u + Opcode = Opcode.VPAVGW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 228(0xE4) + { OpcodeByte = 228u + Opcode = Opcode.VPMULHUW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 228u + Opcode = Opcode.VPMULHUW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 229(0xE5) + { OpcodeByte = 229u + Opcode = Opcode.VPMULHW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 229u + Opcode = Opcode.VPMULHW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 230(0xE6) + { OpcodeByte = 230u + Opcode = Opcode.VCVTDQ2PD + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 230u + Opcode = Opcode.VCVTDQ2PD + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 230u + Opcode = Opcode.VCVTPD2DQ + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 230u + Opcode = Opcode.VCVTPD2DQ + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 230u + Opcode = Opcode.VCVTTPD2DQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 230u + Opcode = Opcode.VCVTTPD2DQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 231(0xE7) + { OpcodeByte = 231u + Opcode = Opcode.VMOVNTDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 128; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 231u + Opcode = Opcode.VMOVNTDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 256; Reg(256, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 232(0xE8) + { OpcodeByte = 232u + Opcode = Opcode.VPSUBSB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 232u + Opcode = Opcode.VPSUBSB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 233(0xE9) + { OpcodeByte = 233u + Opcode = Opcode.VPSUBSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 233u + Opcode = Opcode.VPSUBSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 234(0xEA) + { OpcodeByte = 234u + Opcode = Opcode.VPMINSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 234u + Opcode = Opcode.VPMINSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 235(0xEB) + { OpcodeByte = 235u + Opcode = Opcode.VPOR + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 235u + Opcode = Opcode.VPOR + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 236(0xEC) + { OpcodeByte = 236u + Opcode = Opcode.VPADDSB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 236u + Opcode = Opcode.VPADDSB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 237(0xED) + { OpcodeByte = 237u + Opcode = Opcode.VPADDSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 237u + Opcode = Opcode.VPADDSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 238(0xEE) + { OpcodeByte = 238u + Opcode = Opcode.VPMAXSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 238u + Opcode = Opcode.VPMAXSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 239(0xEF) + { OpcodeByte = 239u + Opcode = Opcode.VPXOR + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 239u + Opcode = Opcode.VPXOR + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 240(0xF0) + { OpcodeByte = 240u + Opcode = Opcode.VLDDQU + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Mem 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 240u + Opcode = Opcode.VLDDQU + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Mem 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 241(0xF1) + { OpcodeByte = 241u + Opcode = Opcode.VPSLLW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 241u + Opcode = Opcode.VPSLLW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 242(0xF2) + { OpcodeByte = 242u + Opcode = Opcode.VPSLLD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 242u + Opcode = Opcode.VPSLLD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 243(0xF3) + { OpcodeByte = 243u + Opcode = Opcode.VPSLLQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 243u + Opcode = Opcode.VPSLLQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 244(0xF4) + { OpcodeByte = 244u + Opcode = Opcode.VPMULUDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 244u + Opcode = Opcode.VPMULUDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 245(0xF5) + { OpcodeByte = 245u + Opcode = Opcode.VPMADDWD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 245u + Opcode = Opcode.VPMADDWD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 246(0xF6) + { OpcodeByte = 246u + Opcode = Opcode.VPSADBW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 246u + Opcode = Opcode.VPSADBW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 247(0xF7) + { OpcodeByte = 247u + Opcode = Opcode.VMASKMOVDQU + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 248(0xF8) + { OpcodeByte = 248u + Opcode = Opcode.VPSUBB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 248u + Opcode = Opcode.VPSUBB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 249(0xF9) + { OpcodeByte = 249u + Opcode = Opcode.VPSUBW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 249u + Opcode = Opcode.VPSUBW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 250(0xFA) + { OpcodeByte = 250u + Opcode = Opcode.VPSUBD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 250u + Opcode = Opcode.VPSUBD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 251(0xFB) + { OpcodeByte = 251u + Opcode = Opcode.VPSUBQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 251u + Opcode = Opcode.VPSUBQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 252(0xFC) + { OpcodeByte = 252u + Opcode = Opcode.VPADDB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 252u + Opcode = Opcode.VPADDB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 253(0xFD) + { OpcodeByte = 253u + Opcode = Opcode.VPADDW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 253u + Opcode = Opcode.VPADDW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 254(0xFE) + { OpcodeByte = 254u + Opcode = Opcode.VPADDD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 254u + Opcode = Opcode.VPADDD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 255(0xFF) + |] + |] + +let (vexThree38: InstructionCore[][]) = + [| + [| // index 0(0x00) + { OpcodeByte = 0u + Opcode = Opcode.VPSHUFB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 0u + Opcode = Opcode.VPSHUFB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 1(0x01) + { OpcodeByte = 1u + Opcode = Opcode.VPHADDW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 1u + Opcode = Opcode.VPHADDW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 2(0x02) + { OpcodeByte = 2u + Opcode = Opcode.VPHADDD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 2u + Opcode = Opcode.VPHADDD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 3(0x03) + { OpcodeByte = 3u + Opcode = Opcode.VPHADDSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 3u + Opcode = Opcode.VPHADDSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 4(0x04) + { OpcodeByte = 4u + Opcode = Opcode.VPMADDUBSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 4u + Opcode = Opcode.VPMADDUBSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 5(0x05) + { OpcodeByte = 5u + Opcode = Opcode.VPHSUBW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 5u + Opcode = Opcode.VPHSUBW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 6(0x06) + { OpcodeByte = 6u + Opcode = Opcode.VPHSUBD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 6u + Opcode = Opcode.VPHSUBD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 7(0x07) + { OpcodeByte = 7u + Opcode = Opcode.VPHSUBSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 7u + Opcode = Opcode.VPHSUBSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 8(0x08) + { OpcodeByte = 8u + Opcode = Opcode.VPSIGNB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 8u + Opcode = Opcode.VPSIGNB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 9(0x09) + { OpcodeByte = 9u + Opcode = Opcode.VPSIGNW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 9u + Opcode = Opcode.VPSIGNW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 10(0x0A) + { OpcodeByte = 10u + Opcode = Opcode.VPSIGND + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 10u + Opcode = Opcode.VPSIGND + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 11(0x0B) + { OpcodeByte = 11u + Opcode = Opcode.VPMULHRSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 11u + Opcode = Opcode.VPMULHRSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 12(0x0C) + { OpcodeByte = 12u + Opcode = Opcode.VPERMILPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 12u + Opcode = Opcode.VPERMILPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 13(0x0D) + { OpcodeByte = 13u + Opcode = Opcode.VPERMILPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 13u + Opcode = Opcode.VPERMILPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 14(0x0E) + { OpcodeByte = 14u + Opcode = Opcode.VTESTPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 14u + Opcode = Opcode.VTESTPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 15(0x0F) + { OpcodeByte = 15u + Opcode = Opcode.VTESTPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 15u + Opcode = Opcode.VTESTPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 16(0x10) + |] + [| // index 17(0x11) + |] + [| // index 18(0x12) + |] + [| // index 19(0x13) + { OpcodeByte = 19u + Opcode = Opcode.VCVTPH2PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 19u + Opcode = Opcode.VCVTPH2PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 20(0x14) + |] + [| // index 21(0x15) + |] + [| // index 22(0x16) + { OpcodeByte = 22u + Opcode = Opcode.VPERMPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 23(0x17) + { OpcodeByte = 23u + Opcode = Opcode.VPTEST + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 23u + Opcode = Opcode.VPTEST + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 24(0x18) + { OpcodeByte = 24u + Opcode = Opcode.VBROADCASTSS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Mem 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 24u + Opcode = Opcode.VBROADCASTSS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Mem 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 24u + Opcode = Opcode.VBROADCASTSS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 24u + Opcode = Opcode.VBROADCASTSS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(128, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 25(0x19) + { OpcodeByte = 25u + Opcode = Opcode.VBROADCASTSD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Mem 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 25u + Opcode = Opcode.VBROADCASTSD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(128, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 26(0x1A) + { OpcodeByte = 26u + Opcode = Opcode.VBROADCASTF128 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Mem 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 27(0x1B) + |] + [| // index 28(0x1C) + { OpcodeByte = 28u + Opcode = Opcode.VPABSB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 28u + Opcode = Opcode.VPABSB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 29(0x1D) + { OpcodeByte = 29u + Opcode = Opcode.VPABSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 29u + Opcode = Opcode.VPABSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 30(0x1E) + { OpcodeByte = 30u + Opcode = Opcode.VPABSD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 30u + Opcode = Opcode.VPABSD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 31(0x1F) + |] + [| // index 32(0x20) + { OpcodeByte = 32u + Opcode = Opcode.VPMOVSXBW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 32u + Opcode = Opcode.VPMOVSXBW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 33(0x21) + { OpcodeByte = 33u + Opcode = Opcode.VPMOVSXBD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 33u + Opcode = Opcode.VPMOVSXBD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 34(0x22) + { OpcodeByte = 34u + Opcode = Opcode.VPMOVSXBQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 16) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 34u + Opcode = Opcode.VPMOVSXBQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMdiff(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 35(0x23) + { OpcodeByte = 35u + Opcode = Opcode.VPMOVSXWD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 35u + Opcode = Opcode.VPMOVSXWD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 36(0x24) + { OpcodeByte = 36u + Opcode = Opcode.VPMOVSXWQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 36u + Opcode = Opcode.VPMOVSXWQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 37(0x25) + { OpcodeByte = 37u + Opcode = Opcode.VPMOVSXDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 37u + Opcode = Opcode.VPMOVSXDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 38(0x26) + |] + [| // index 39(0x27) + |] + [| // index 40(0x28) + { OpcodeByte = 40u + Opcode = Opcode.VPMULDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 40u + Opcode = Opcode.VPMULDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 41(0x29) + { OpcodeByte = 41u + Opcode = Opcode.VPCMPEQQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 41u + Opcode = Opcode.VPCMPEQQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 42(0x2A) + { OpcodeByte = 42u + Opcode = Opcode.VMOVNTDQA + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Mem 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 42u + Opcode = Opcode.VMOVNTDQA + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Mem 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 43(0x2B) + { OpcodeByte = 43u + Opcode = Opcode.VPACKUSDW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 43u + Opcode = Opcode.VPACKUSDW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 44(0x2C) + { OpcodeByte = 44u + Opcode = Opcode.VMASKMOVPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); Mem 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 44u + Opcode = Opcode.VMASKMOVPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); Mem 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 45(0x2D) + { OpcodeByte = 45u + Opcode = Opcode.VMASKMOVPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); Mem 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 45u + Opcode = Opcode.VMASKMOVPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); Mem 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 46(0x2E) + { OpcodeByte = 46u + Opcode = Opcode.VMASKMOVPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 128; Reg(128, VVVV); Reg(128, RegBit) |] + OpEn = OpEn.MVR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 46u + Opcode = Opcode.VMASKMOVPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 256; Reg(256, VVVV); Reg(256, RegBit) |] + OpEn = OpEn.MVR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 47(0x2F) + { OpcodeByte = 47u + Opcode = Opcode.VMASKMOVPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 128; Reg(128, VVVV); Reg(128, RegBit) |] + OpEn = OpEn.MVR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 47u + Opcode = Opcode.VMASKMOVPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 256; Reg(256, VVVV); Reg(256, RegBit) |] + OpEn = OpEn.MVR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 48(0x30) + { OpcodeByte = 48u + Opcode = Opcode.VPMOVZXBW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 48u + Opcode = Opcode.VPMOVZXBW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 49(0x31) + { OpcodeByte = 49u + Opcode = Opcode.VPMOVZXBD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 49u + Opcode = Opcode.VPMOVZXBD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 50(0x32) + { OpcodeByte = 50u + Opcode = Opcode.VPMOVZXBQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 16) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 50u + Opcode = Opcode.VPMOVZXBQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMdiff(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 51(0x33) + { OpcodeByte = 51u + Opcode = Opcode.VPMOVZXWD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 51u + Opcode = Opcode.VPMOVZXWD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 52(0x34) + { OpcodeByte = 52u + Opcode = Opcode.VPMOVZXWQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 52u + Opcode = Opcode.VPMOVZXWQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 53(0x35) + { OpcodeByte = 53u + Opcode = Opcode.VPMOVZXDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 53u + Opcode = Opcode.VPMOVZXDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 54(0x36) + { OpcodeByte = 54u + Opcode = Opcode.VPERMD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 55(0x37) + { OpcodeByte = 55u + Opcode = Opcode.VPCMPGTQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 55u + Opcode = Opcode.VPCMPGTQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 56(0x38) + { OpcodeByte = 56u + Opcode = Opcode.VPMINSB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 56u + Opcode = Opcode.VPMINSB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 57(0x39) + { OpcodeByte = 57u + Opcode = Opcode.VPMINSD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 57u + Opcode = Opcode.VPMINSD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 58(0x3A) + { OpcodeByte = 58u + Opcode = Opcode.VPMINUW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 58u + Opcode = Opcode.VPMINUW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 59(0x3B) + { OpcodeByte = 59u + Opcode = Opcode.VPMINUD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 59u + Opcode = Opcode.VPMINUD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 60(0x3C) + { OpcodeByte = 60u + Opcode = Opcode.VPMAXSB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 60u + Opcode = Opcode.VPMAXSB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 61(0x3D) + { OpcodeByte = 61u + Opcode = Opcode.VPMAXSD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 61u + Opcode = Opcode.VPMAXSD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 62(0x3E) + { OpcodeByte = 62u + Opcode = Opcode.VPMAXUW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 62u + Opcode = Opcode.VPMAXUW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 63(0x3F) + { OpcodeByte = 63u + Opcode = Opcode.VPMAXUD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 63u + Opcode = Opcode.VPMAXUD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 64(0x40) + { OpcodeByte = 64u + Opcode = Opcode.VPMULLD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 64u + Opcode = Opcode.VPMULLD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 65(0x41) + { OpcodeByte = 65u + Opcode = Opcode.VPHMINPOSUW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 66(0x42) + |] + [| // index 67(0x43) + |] + [| // index 68(0x44) + |] + [| // index 69(0x45) + { OpcodeByte = 69u + Opcode = Opcode.VPSRLVD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 69u + Opcode = Opcode.VPSRLVQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 69u + Opcode = Opcode.VPSRLVD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 69u + Opcode = Opcode.VPSRLVQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 70(0x46) + { OpcodeByte = 70u + Opcode = Opcode.VPSRAVD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 70u + Opcode = Opcode.VPSRAVD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 71(0x47) + { OpcodeByte = 71u + Opcode = Opcode.VPSLLVD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 71u + Opcode = Opcode.VPSLLVQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 71u + Opcode = Opcode.VPSLLVD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 71u + Opcode = Opcode.VPSLLVQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 72(0x48) + |] + [| // index 73(0x49) + { OpcodeByte = 73u + Opcode = Opcode.LDTILECFG + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRMOp0 OpMem + Operands = [| Mem 512 |] + OpEn = OpEn.A + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 73u + Opcode = Opcode.STTILECFG + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRMOp0 OpMem + Operands = [| Mem 512 |] + OpEn = OpEn.A + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 73u + Opcode = Opcode.TILERELEASE + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.NoModRM + Operands = [| NoOpr |] + OpEn = OpEn.A + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 73u + Opcode = Opcode.TILEZERO + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(1024, RegBit) |] + OpEn = OpEn.A + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 74(0x4A) + |] + [| // index 75(0x4B) + { OpcodeByte = 75u + Opcode = Opcode.TILELOADD + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpMem + Operands = [| Reg(1024, RegBit); Mem 0 |] + OpEn = OpEn.RM + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 75u + Opcode = Opcode.TILELOADDT1 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpMem + Operands = [| Reg(1024, RegBit); Mem 0 |] + OpEn = OpEn.RM + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 75u + Opcode = Opcode.TILESTORED + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpMem + Operands = [| Mem 0; Reg(1024, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 76(0x4C) + |] + [| // index 77(0x4D) + |] + [| // index 78(0x4E) + |] + [| // index 79(0x4F) + |] + [| // index 80(0x50) + { OpcodeByte = 80u + Opcode = Opcode.VPDPBSSD + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 80u + Opcode = Opcode.VPDPBSSD + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 80u + Opcode = Opcode.VPDPBSUD + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 80u + Opcode = Opcode.VPDPBSUD + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 80u + Opcode = Opcode.VPDPBUUD + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 80u + Opcode = Opcode.VPDPBUUD + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 80u + Opcode = Opcode.VPDPBUSD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 80u + Opcode = Opcode.VPDPBUSD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 81(0x51) + { OpcodeByte = 81u + Opcode = Opcode.VPDPBSSDS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 81u + Opcode = Opcode.VPDPBSSDS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 81u + Opcode = Opcode.VPDPBSUDS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 81u + Opcode = Opcode.VPDPBSUDS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 81u + Opcode = Opcode.VPDPBUUDS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 81u + Opcode = Opcode.VPDPBUUDS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 81u + Opcode = Opcode.VPDPBUSDS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 81u + Opcode = Opcode.VPDPBUSDS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 82(0x52) + { OpcodeByte = 82u + Opcode = Opcode.VPDPWSSD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 82u + Opcode = Opcode.VPDPWSSD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 83(0x53) + { OpcodeByte = 83u + Opcode = Opcode.VPDPWSSDS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 83u + Opcode = Opcode.VPDPWSSDS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 84(0x54) + |] + [| // index 85(0x55) + |] + [| // index 86(0x56) + |] + [| // index 87(0x57) + |] + [| // index 88(0x58) + { OpcodeByte = 88u + Opcode = Opcode.VPBROADCASTD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 88u + Opcode = Opcode.VPBROADCASTD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMdiff(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 89(0x59) + { OpcodeByte = 89u + Opcode = Opcode.VPBROADCASTQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 89u + Opcode = Opcode.VPBROADCASTQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 90(0x5A) + { OpcodeByte = 90u + Opcode = Opcode.VBROADCASTI128 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Mem 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 91(0x5B) + |] + [| // index 92(0x5C) + { OpcodeByte = 92u + Opcode = Opcode.TDPBF16PS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(1024, RegBit) + Reg(1024, RMBit) + Reg(1024, VVVV) |] + OpEn = OpEn.A + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 92u + Opcode = Opcode.TDPFP16PS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(1024, RegBit) + Reg(1024, RMBit) + Reg(1024, VVVV) |] + OpEn = OpEn.A + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 93(0x5D) + |] + [| // index 94(0x5E) + { OpcodeByte = 94u + Opcode = Opcode.TDPBSSD + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(1024, RegBit) + Reg(1024, RMBit) + Reg(1024, VVVV) |] + OpEn = OpEn.A + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 94u + Opcode = Opcode.TDPBSUD + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(1024, RegBit) + Reg(1024, RMBit) + Reg(1024, VVVV) |] + OpEn = OpEn.A + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 94u + Opcode = Opcode.TDPBUSD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(1024, RegBit) + Reg(1024, RMBit) + Reg(1024, VVVV) |] + OpEn = OpEn.A + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 94u + Opcode = Opcode.TDPBUUD + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(1024, RegBit) + Reg(1024, RMBit) + Reg(1024, VVVV) |] + OpEn = OpEn.A + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 95(0x5F) + |] + [| // index 96(0x60) + |] + [| // index 97(0x61) + |] + [| // index 98(0x62) + |] + [| // index 99(0x63) + |] + [| // index 100(0x64) + |] + [| // index 101(0x65) + |] + [| // index 102(0x66) + |] + [| // index 103(0x67) + |] + [| // index 104(0x68) + |] + [| // index 105(0x69) + |] + [| // index 106(0x6A) + |] + [| // index 107(0x6B) + |] + [| // index 108(0x6C) + |] + [| // index 109(0x6D) + |] + [| // index 110(0x6E) + |] + [| // index 111(0x6F) + |] + [| // index 112(0x70) + |] + [| // index 113(0x71) + |] + [| // index 114(0x72) + { OpcodeByte = 114u + Opcode = Opcode.VCVTNEPS2BF16 + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 114u + Opcode = Opcode.VCVTNEPS2BF16 + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 115(0x73) + |] + [| // index 116(0x74) + |] + [| // index 117(0x75) + |] + [| // index 118(0x76) + |] + [| // index 119(0x77) + |] + [| // index 120(0x78) + { OpcodeByte = 120u + Opcode = Opcode.VPBROADCASTB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 8) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 120u + Opcode = Opcode.VPBROADCASTB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMdiff(128, 8) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 121(0x79) + { OpcodeByte = 121u + Opcode = Opcode.VPBROADCASTW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 16) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 121u + Opcode = Opcode.VPBROADCASTW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMdiff(128, 16) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 122(0x7A) + |] + [| // index 123(0x7B) + |] + [| // index 124(0x7C) + |] + [| // index 125(0x7D) + |] + [| // index 126(0x7E) + |] + [| // index 127(0x7F) + |] + [| // index 128(0x80) + |] + [| // index 129(0x81) + |] + [| // index 130(0x82) + |] + [| // index 131(0x83) + |] + [| // index 132(0x84) + |] + [| // index 133(0x85) + |] + [| // index 134(0x86) + |] + [| // index 135(0x87) + |] + [| // index 136(0x88) + |] + [| // index 137(0x89) + |] + [| // index 138(0x8A) + |] + [| // index 139(0x8B) + |] + [| // index 140(0x8C) + { OpcodeByte = 140u + Opcode = Opcode.VPMASKMOVD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); Mem 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 140u + Opcode = Opcode.VPMASKMOVD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); Mem 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 140u + Opcode = Opcode.VPMASKMOVQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); Mem 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 140u + Opcode = Opcode.VPMASKMOVQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); Mem 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 141(0x8D) + |] + [| // index 142(0x8E) + { OpcodeByte = 142u + Opcode = Opcode.VPMASKMOVD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 128; Reg(128, VVVV); Reg(128, RegBit) |] + OpEn = OpEn.MVR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 142u + Opcode = Opcode.VPMASKMOVD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 256; Reg(256, VVVV); Reg(256, RegBit) |] + OpEn = OpEn.MVR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 142u + Opcode = Opcode.VPMASKMOVQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 128; Reg(128, VVVV); Reg(128, RegBit) |] + OpEn = OpEn.MVR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 142u + Opcode = Opcode.VPMASKMOVQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 256; Reg(256, VVVV); Reg(256, RegBit) |] + OpEn = OpEn.MVR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 143(0x8F) + |] + [| // index 144(0x90) + { OpcodeByte = 144u + Opcode = Opcode.VPGATHERDD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + MemVSIB 32 + Reg(128, VVVV) |] + OpEn = OpEn.RMV + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 144u + Opcode = Opcode.VPGATHERDD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + MemVSIB 32 + Reg(256, VVVV) |] + OpEn = OpEn.RMV + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 144u + Opcode = Opcode.VPGATHERDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + MemVSIB 32 + Reg(128, VVVV) |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 144u + Opcode = Opcode.VPGATHERDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + MemVSIB 32 + Reg(256, VVVV) |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 145(0x91) + { OpcodeByte = 145u + Opcode = Opcode.VPGATHERQD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + MemVSIB 64 + Reg(128, VVVV) |] + OpEn = OpEn.RMV + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 145u + Opcode = Opcode.VPGATHERQD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + MemVSIB 64 + Reg(128, VVVV) |] + OpEn = OpEn.RMV + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 145u + Opcode = Opcode.VPGATHERQQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + MemVSIB 64 + Reg(128, VVVV) |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 145u + Opcode = Opcode.VPGATHERQQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + MemVSIB 64 + Reg(256, VVVV) |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 146(0x92) + { OpcodeByte = 146u + Opcode = Opcode.VGATHERDPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + MemVSIB 32 + Reg(128, VVVV) |] + OpEn = OpEn.RMV + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 146u + Opcode = Opcode.VGATHERDPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + MemVSIB 32 + Reg(256, VVVV) |] + OpEn = OpEn.RMV + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 146u + Opcode = Opcode.VGATHERDPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + MemVSIB 32 + Reg(128, VVVV) |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 146u + Opcode = Opcode.VGATHERDPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + MemVSIB 32 + Reg(256, VVVV) |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 147(0x93) + { OpcodeByte = 147u + Opcode = Opcode.VGATHERQPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + MemVSIB 64 + Reg(128, VVVV) |] + OpEn = OpEn.RMV + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 147u + Opcode = Opcode.VGATHERQPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + MemVSIB 64 + Reg(256, VVVV) |] + OpEn = OpEn.RMV + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 147u + Opcode = Opcode.VGATHERQPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + MemVSIB 64 + Reg(128, VVVV) |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 147u + Opcode = Opcode.VGATHERQPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + MemVSIB 64 + Reg(128, VVVV) |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 148(0x94) + |] + [| // index 149(0x95) + |] + [| // index 150(0x96) + { OpcodeByte = 150u + Opcode = Opcode.VFMADDSUB132PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 150u + Opcode = Opcode.VFMADDSUB132PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 150u + Opcode = Opcode.VFMADDSUB132PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 150u + Opcode = Opcode.VFMADDSUB132PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 151(0x97) + { OpcodeByte = 151u + Opcode = Opcode.VFMSUBADD132PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 151u + Opcode = Opcode.VFMSUBADD132PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 151u + Opcode = Opcode.VFMSUBADD132PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 151u + Opcode = Opcode.VFMSUBADD132PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 152(0x98) + { OpcodeByte = 152u + Opcode = Opcode.VFMADD132PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 152u + Opcode = Opcode.VFMADD132PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 152u + Opcode = Opcode.VFMADD132PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 152u + Opcode = Opcode.VFMADD132PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 153(0x99) + { OpcodeByte = 153u + Opcode = Opcode.VFMADD132SD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 153u + Opcode = Opcode.VFMADD132SS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 154(0x9A) + { OpcodeByte = 154u + Opcode = Opcode.VFMSUB132PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 154u + Opcode = Opcode.VFMSUB132PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 154u + Opcode = Opcode.VFMSUB132PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 154u + Opcode = Opcode.VFMSUB132PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 155(0x9B) + { OpcodeByte = 155u + Opcode = Opcode.VFMSUB132SD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 155u + Opcode = Opcode.VFMSUB132SS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 156(0x9C) + { OpcodeByte = 156u + Opcode = Opcode.VFNMADD132PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 156u + Opcode = Opcode.VFNMADD132PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 156u + Opcode = Opcode.VFNMADD132PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 156u + Opcode = Opcode.VFNMADD132PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 157(0x9D) + { OpcodeByte = 157u + Opcode = Opcode.VFNMADD132SD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 157u + Opcode = Opcode.VFNMADD132SS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 158(0x9E) + { OpcodeByte = 158u + Opcode = Opcode.VFNMSUB132PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 158u + Opcode = Opcode.VFNMSUB132PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 158u + Opcode = Opcode.VFNMSUB132PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 158u + Opcode = Opcode.VFNMSUB132PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 159(0x9F) + { OpcodeByte = 159u + Opcode = Opcode.VFNMSUB132SD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 159u + Opcode = Opcode.VFNMSUB132SS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 160(0xA0) + |] + [| // index 161(0xA1) + |] + [| // index 162(0xA2) + |] + [| // index 163(0xA3) + |] + [| // index 164(0xA4) + |] + [| // index 165(0xA5) + |] + [| // index 166(0xA6) + { OpcodeByte = 166u + Opcode = Opcode.VFMADDSUB213PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 166u + Opcode = Opcode.VFMADDSUB213PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 166u + Opcode = Opcode.VFMADDSUB213PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 166u + Opcode = Opcode.VFMADDSUB213PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 167(0xA7) + { OpcodeByte = 167u + Opcode = Opcode.VFMSUBADD213PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 167u + Opcode = Opcode.VFMSUBADD213PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 167u + Opcode = Opcode.VFMSUBADD213PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 167u + Opcode = Opcode.VFMSUBADD213PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 168(0xA8) + { OpcodeByte = 168u + Opcode = Opcode.VFMADD213PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 168u + Opcode = Opcode.VFMADD213PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 168u + Opcode = Opcode.VFMADD213PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 168u + Opcode = Opcode.VFMADD213PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 169(0xA9) + { OpcodeByte = 169u + Opcode = Opcode.VFMADD213SD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 169u + Opcode = Opcode.VFMADD213SS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 170(0xAA) + { OpcodeByte = 170u + Opcode = Opcode.VFMSUB213PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 170u + Opcode = Opcode.VFMSUB213PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 170u + Opcode = Opcode.VFMSUB213PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 170u + Opcode = Opcode.VFMSUB213PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 171(0xAB) + { OpcodeByte = 171u + Opcode = Opcode.VFMSUB213SD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 171u + Opcode = Opcode.VFMSUB213SS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 172(0xAC) + { OpcodeByte = 172u + Opcode = Opcode.VFNMADD213PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 172u + Opcode = Opcode.VFNMADD213PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 172u + Opcode = Opcode.VFNMADD213PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 172u + Opcode = Opcode.VFNMADD213PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 173(0xAD) + { OpcodeByte = 173u + Opcode = Opcode.VFNMADD213SD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 173u + Opcode = Opcode.VFNMADD213SS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 174(0xAE) + { OpcodeByte = 174u + Opcode = Opcode.VFNMSUB213PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 174u + Opcode = Opcode.VFNMSUB213PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 174u + Opcode = Opcode.VFNMSUB213PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 174u + Opcode = Opcode.VFNMSUB213PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 175(0xAF) + { OpcodeByte = 175u + Opcode = Opcode.VFNMSUB213SD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 175u + Opcode = Opcode.VFNMSUB213SS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 176(0xB0) + { OpcodeByte = 176u + Opcode = Opcode.VCVTNEEBF162PS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpMem + Operands = [| Reg(128, RegBit); Mem 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 176u + Opcode = Opcode.VCVTNEEBF162PS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpMem + Operands = [| Reg(256, RegBit); Mem 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 176u + Opcode = Opcode.VCVTNEEPH2PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpMem + Operands = [| Reg(128, RegBit); Mem 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 176u + Opcode = Opcode.VCVTNEEPH2PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpMem + Operands = [| Reg(256, RegBit); Mem 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 176u + Opcode = Opcode.VCVTNEOBF162PS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpMem + Operands = [| Reg(128, RegBit); Mem 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 176u + Opcode = Opcode.VCVTNEOBF162PS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpMem + Operands = [| Reg(256, RegBit); Mem 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 176u + Opcode = Opcode.VCVTNEOPH2PS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpMem + Operands = [| Reg(128, RegBit); Mem 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 176u + Opcode = Opcode.VCVTNEOPH2PS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpMem + Operands = [| Reg(256, RegBit); Mem 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 177(0xB1) + { OpcodeByte = 177u + Opcode = Opcode.VBCSTNEBF162PS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpMem + Operands = [| Reg(128, RegBit); Mem 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 177u + Opcode = Opcode.VBCSTNEBF162PS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpMem + Operands = [| Reg(256, RegBit); Mem 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 177u + Opcode = Opcode.VBCSTNESH2PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpMem + Operands = [| Reg(128, RegBit); Mem 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 177u + Opcode = Opcode.VBCSTNESH2PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpMem + Operands = [| Reg(256, RegBit); Mem 16 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 178(0xB2) + |] + [| // index 179(0xB3) + |] + [| // index 180(0xB4) + { OpcodeByte = 180u + Opcode = Opcode.VPMADD52LUQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 180u + Opcode = Opcode.VPMADD52LUQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 181(0xB5) + { OpcodeByte = 181u + Opcode = Opcode.VPMADD52HUQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 181u + Opcode = Opcode.VPMADD52HUQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 182(0xB6) + { OpcodeByte = 182u + Opcode = Opcode.VFMADDSUB231PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 182u + Opcode = Opcode.VFMADDSUB231PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 182u + Opcode = Opcode.VFMADDSUB231PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 182u + Opcode = Opcode.VFMADDSUB231PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 183(0xB7) + { OpcodeByte = 183u + Opcode = Opcode.VFMSUBADD231PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 183u + Opcode = Opcode.VFMSUBADD231PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 183u + Opcode = Opcode.VFMSUBADD231PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 183u + Opcode = Opcode.VFMSUBADD231PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 184(0xB8) + { OpcodeByte = 184u + Opcode = Opcode.VFMADD231PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 184u + Opcode = Opcode.VFMADD231PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 184u + Opcode = Opcode.VFMADD231PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 184u + Opcode = Opcode.VFMADD231PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 185(0xB9) + { OpcodeByte = 185u + Opcode = Opcode.VFMADD231SD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 185u + Opcode = Opcode.VFMADD231SS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 186(0xBA) + { OpcodeByte = 186u + Opcode = Opcode.VFMSUB231PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 186u + Opcode = Opcode.VFMSUB231PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 186u + Opcode = Opcode.VFMSUB231PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 186u + Opcode = Opcode.VFMSUB231PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 187(0xBB) + { OpcodeByte = 187u + Opcode = Opcode.VFMSUB231SD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 187u + Opcode = Opcode.VFMSUB231SS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 188(0xBC) + { OpcodeByte = 188u + Opcode = Opcode.VFNMADD231PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 188u + Opcode = Opcode.VFNMADD231PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 188u + Opcode = Opcode.VFNMADD231PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 188u + Opcode = Opcode.VFNMADD231PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 189(0xBD) + { OpcodeByte = 189u + Opcode = Opcode.VFNMADD231SD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 189u + Opcode = Opcode.VFNMADD231SS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 190(0xBE) + { OpcodeByte = 190u + Opcode = Opcode.VFNMSUB231PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 190u + Opcode = Opcode.VFNMSUB231PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 190u + Opcode = Opcode.VFNMSUB231PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 190u + Opcode = Opcode.VFNMSUB231PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 191(0xBF) + { OpcodeByte = 191u + Opcode = Opcode.VFNMSUB231SD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 191u + Opcode = Opcode.VFNMSUB231SS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 192(0xC0) + |] + [| // index 193(0xC1) + |] + [| // index 194(0xC2) + |] + [| // index 195(0xC3) + |] + [| // index 196(0xC4) + |] + [| // index 197(0xC5) + |] + [| // index 198(0xC6) + |] + [| // index 199(0xC7) + |] + [| // index 200(0xC8) + |] + [| // index 201(0xC9) + |] + [| // index 202(0xCA) + |] + [| // index 203(0xCB) + { OpcodeByte = 203u + Opcode = Opcode.VSHA512RNDS2 + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + Reg(128, RMBit) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 204(0xCC) + { OpcodeByte = 204u + Opcode = Opcode.VSHA512MSG1 + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(128, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 205(0xCD) + { OpcodeByte = 205u + Opcode = Opcode.VSHA512MSG2 + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 206(0xCE) + |] + [| // index 207(0xCF) + { OpcodeByte = 207u + Opcode = Opcode.VGF2P8MULB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 207u + Opcode = Opcode.VGF2P8MULB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 208(0xD0) + |] + [| // index 209(0xD1) + |] + [| // index 210(0xD2) + { OpcodeByte = 210u + Opcode = Opcode.VPDPWSUD + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 210u + Opcode = Opcode.VPDPWSUD + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 210u + Opcode = Opcode.VPDPWUSD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 210u + Opcode = Opcode.VPDPWUSD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 210u + Opcode = Opcode.VPDPWUUD + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 210u + Opcode = Opcode.VPDPWUUD + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 211(0xD3) + { OpcodeByte = 211u + Opcode = Opcode.VPDPWSUDS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 211u + Opcode = Opcode.VPDPWSUDS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 211u + Opcode = Opcode.VPDPWUSDS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 211u + Opcode = Opcode.VPDPWUSDS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 211u + Opcode = Opcode.VPDPWUUDS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 211u + Opcode = Opcode.VPDPWUUDS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 212(0xD4) + |] + [| // index 213(0xD5) + |] + [| // index 214(0xD6) + |] + [| // index 215(0xD7) + |] + [| // index 216(0xD8) + |] + [| // index 217(0xD9) + |] + [| // index 218(0xDA) + { OpcodeByte = 218u + Opcode = Opcode.VSM3MSG1 + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 218u + Opcode = Opcode.VSM3MSG2 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 218u + Opcode = Opcode.VSM4KEY4 + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 218u + Opcode = Opcode.VSM4KEY4 + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 218u + Opcode = Opcode.VSM4RNDS4 + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 218u + Opcode = Opcode.VSM4RNDS4 + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 219(0xDB) + { OpcodeByte = 219u + Opcode = Opcode.VAESIMC + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 220(0xDC) + { OpcodeByte = 220u + Opcode = Opcode.VAESENC + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 220u + Opcode = Opcode.VAESENC + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 221(0xDD) + { OpcodeByte = 221u + Opcode = Opcode.VAESENCLAST + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 221u + Opcode = Opcode.VAESENCLAST + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 222(0xDE) + { OpcodeByte = 222u + Opcode = Opcode.VAESDEC + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 222u + Opcode = Opcode.VAESDEC + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 223(0xDF) + { OpcodeByte = 223u + Opcode = Opcode.VAESDECLAST + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 223u + Opcode = Opcode.VAESDECLAST + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 224(0xE0) + { OpcodeByte = 224u + Opcode = Opcode.CMPOXADD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpMem + Operands = [| Mem 32; Reg(32, RegBit); Reg(32, VVVV) |] + OpEn = OpEn.A + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 224u + Opcode = Opcode.CMPOXADD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpMem + Operands = [| Mem 64; Reg(64, RegBit); Reg(64, VVVV) |] + OpEn = OpEn.A + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 225(0xE1) + { OpcodeByte = 225u + Opcode = Opcode.CMPNOXADD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpMem + Operands = [| Mem 32; Reg(32, RegBit); Reg(32, VVVV) |] + OpEn = OpEn.A + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 225u + Opcode = Opcode.CMPNOXADD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpMem + Operands = [| Mem 64; Reg(64, RegBit); Reg(64, VVVV) |] + OpEn = OpEn.A + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 226(0xE2) + { OpcodeByte = 226u + Opcode = Opcode.CMPBXADD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpMem + Operands = [| Mem 32; Reg(32, RegBit); Reg(32, VVVV) |] + OpEn = OpEn.A + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 226u + Opcode = Opcode.CMPBXADD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpMem + Operands = [| Mem 64; Reg(64, RegBit); Reg(64, VVVV) |] + OpEn = OpEn.A + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 227(0xE3) + { OpcodeByte = 227u + Opcode = Opcode.CMPNBXADD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpMem + Operands = [| Mem 32; Reg(32, RegBit); Reg(32, VVVV) |] + OpEn = OpEn.A + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 227u + Opcode = Opcode.CMPNBXADD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpMem + Operands = [| Mem 64; Reg(64, RegBit); Reg(64, VVVV) |] + OpEn = OpEn.A + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 228(0xE4) + { OpcodeByte = 228u + Opcode = Opcode.CMPZXADD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpMem + Operands = [| Mem 32; Reg(32, RegBit); Reg(32, VVVV) |] + OpEn = OpEn.A + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 228u + Opcode = Opcode.CMPZXADD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpMem + Operands = [| Mem 64; Reg(64, RegBit); Reg(64, VVVV) |] + OpEn = OpEn.A + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 229(0xE5) + { OpcodeByte = 229u + Opcode = Opcode.CMPNZXADD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpMem + Operands = [| Mem 32; Reg(32, RegBit); Reg(32, VVVV) |] + OpEn = OpEn.A + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 229u + Opcode = Opcode.CMPNZXADD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpMem + Operands = [| Mem 64; Reg(64, RegBit); Reg(64, VVVV) |] + OpEn = OpEn.A + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 230(0xE6) + { OpcodeByte = 230u + Opcode = Opcode.CMPBEXADD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpMem + Operands = [| Mem 32; Reg(32, RegBit); Reg(32, VVVV) |] + OpEn = OpEn.A + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 230u + Opcode = Opcode.CMPBEXADD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpMem + Operands = [| Mem 64; Reg(64, RegBit); Reg(64, VVVV) |] + OpEn = OpEn.A + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 231(0xE7) + { OpcodeByte = 231u + Opcode = Opcode.CMPNBEXADD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpMem + Operands = [| Mem 32; Reg(32, RegBit); Reg(32, VVVV) |] + OpEn = OpEn.A + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 231u + Opcode = Opcode.CMPNBEXADD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpMem + Operands = [| Mem 64; Reg(64, RegBit); Reg(64, VVVV) |] + OpEn = OpEn.A + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 232(0xE8) + { OpcodeByte = 232u + Opcode = Opcode.CMPSXADD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpMem + Operands = [| Mem 32; Reg(32, RegBit); Reg(32, VVVV) |] + OpEn = OpEn.A + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 232u + Opcode = Opcode.CMPSXADD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpMem + Operands = [| Mem 64; Reg(64, RegBit); Reg(64, VVVV) |] + OpEn = OpEn.A + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 233(0xE9) + { OpcodeByte = 233u + Opcode = Opcode.CMPNSXADD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpMem + Operands = [| Mem 32; Reg(32, RegBit); Reg(32, VVVV) |] + OpEn = OpEn.A + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 233u + Opcode = Opcode.CMPNSXADD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpMem + Operands = [| Mem 64; Reg(64, RegBit); Reg(64, VVVV) |] + OpEn = OpEn.A + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 234(0xEA) + { OpcodeByte = 234u + Opcode = Opcode.CMPPXADD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpMem + Operands = [| Mem 32; Reg(32, RegBit); Reg(32, VVVV) |] + OpEn = OpEn.A + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 234u + Opcode = Opcode.CMPPXADD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpMem + Operands = [| Mem 64; Reg(64, RegBit); Reg(64, VVVV) |] + OpEn = OpEn.A + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 235(0xEB) + { OpcodeByte = 235u + Opcode = Opcode.CMPNPXADD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpMem + Operands = [| Mem 32; Reg(32, RegBit); Reg(32, VVVV) |] + OpEn = OpEn.A + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 235u + Opcode = Opcode.CMPNPXADD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpMem + Operands = [| Mem 64; Reg(64, RegBit); Reg(64, VVVV) |] + OpEn = OpEn.A + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 236(0xEC) + { OpcodeByte = 236u + Opcode = Opcode.CMPLXADD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpMem + Operands = [| Mem 32; Reg(32, RegBit); Reg(32, VVVV) |] + OpEn = OpEn.A + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 236u + Opcode = Opcode.CMPLXADD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpMem + Operands = [| Mem 64; Reg(64, RegBit); Reg(64, VVVV) |] + OpEn = OpEn.A + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 237(0xED) + { OpcodeByte = 237u + Opcode = Opcode.CMPNLXADD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpMem + Operands = [| Mem 32; Reg(32, RegBit); Reg(32, VVVV) |] + OpEn = OpEn.A + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 237u + Opcode = Opcode.CMPNLXADD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpMem + Operands = [| Mem 64; Reg(64, RegBit); Reg(64, VVVV) |] + OpEn = OpEn.A + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 238(0xEE) + { OpcodeByte = 238u + Opcode = Opcode.CMPLEXADD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpMem + Operands = [| Mem 32; Reg(32, RegBit); Reg(32, VVVV) |] + OpEn = OpEn.A + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 238u + Opcode = Opcode.CMPLEXADD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpMem + Operands = [| Mem 64; Reg(64, RegBit); Reg(64, VVVV) |] + OpEn = OpEn.A + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 239(0xEF) + { OpcodeByte = 239u + Opcode = Opcode.CMPNLEXADD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpMem + Operands = [| Mem 32; Reg(32, RegBit); Reg(32, VVVV) |] + OpEn = OpEn.A + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 239u + Opcode = Opcode.CMPNLEXADD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpMem + Operands = [| Mem 64; Reg(64, RegBit); Reg(64, VVVV) |] + OpEn = OpEn.A + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 240(0xF0) + |] + [| // index 241(0xF1) + |] + [| // index 242(0xF2) + { OpcodeByte = 242u + Opcode = Opcode.ANDN + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); Reg(32, VVVV); RM 32 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 242u + Opcode = Opcode.ANDN + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); Reg(64, VVVV); RM 64 |] + OpEn = OpEn.RVM + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 243(0xF3) + { OpcodeByte = 243u + Opcode = Opcode.BLSI + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRMOp3 OpRegMem + Operands = [| Reg(32, VVVV); RM 32 |] + OpEn = OpEn.VM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 243u + Opcode = Opcode.BLSI + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRMOp3 OpRegMem + Operands = [| Reg(64, VVVV); RM 64 |] + OpEn = OpEn.VM + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 243u + Opcode = Opcode.BLSMSK + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| Reg(32, VVVV); RM 32 |] + OpEn = OpEn.VM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 243u + Opcode = Opcode.BLSMSK + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| Reg(64, VVVV); RM 64 |] + OpEn = OpEn.VM + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 243u + Opcode = Opcode.BLSR + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRMOp1 OpRegMem + Operands = [| Reg(32, VVVV); RM 32 |] + OpEn = OpEn.VM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 243u + Opcode = Opcode.BLSR + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRMOp1 OpRegMem + Operands = [| Reg(64, VVVV); RM 64 |] + OpEn = OpEn.VM + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 244(0xF4) + |] + [| // index 245(0xF5) + { OpcodeByte = 245u + Opcode = Opcode.BZHI + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32; Reg(32, VVVV) |] + OpEn = OpEn.RMV + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 245u + Opcode = Opcode.BZHI + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64; Reg(64, VVVV) |] + OpEn = OpEn.RMV + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 245u + Opcode = Opcode.PDEP + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); Reg(32, VVVV); RM 32 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 245u + Opcode = Opcode.PDEP + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); Reg(64, VVVV); RM 64 |] + OpEn = OpEn.RVM + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 245u + Opcode = Opcode.PEXT + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); Reg(32, VVVV); RM 32 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 245u + Opcode = Opcode.PEXT + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); Reg(64, VVVV); RM 64 |] + OpEn = OpEn.RVM + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 246(0xF6) + { OpcodeByte = 246u + Opcode = Opcode.MULX + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); Reg(32, VVVV); RM 32 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 246u + Opcode = Opcode.MULX + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); Reg(64, VVVV); RM 64 |] + OpEn = OpEn.RVM + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 247(0xF7) + { OpcodeByte = 247u + Opcode = Opcode.BEXTR + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32; Reg(32, VVVV) |] + OpEn = OpEn.RMV + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 247u + Opcode = Opcode.BEXTR + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64; Reg(64, VVVV) |] + OpEn = OpEn.RMV + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 247u + Opcode = Opcode.SARX + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32; Reg(32, VVVV) |] + OpEn = OpEn.RMV + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 247u + Opcode = Opcode.SHLX + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32; Reg(32, VVVV) |] + OpEn = OpEn.RMV + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 247u + Opcode = Opcode.SHRX + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32; Reg(32, VVVV) |] + OpEn = OpEn.RMV + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 247u + Opcode = Opcode.SARX + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64; Reg(64, VVVV) |] + OpEn = OpEn.RMV + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 247u + Opcode = Opcode.SHLX + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64; Reg(64, VVVV) |] + OpEn = OpEn.RMV + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + { OpcodeByte = 247u + Opcode = Opcode.SHRX + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64; Reg(64, VVVV) |] + OpEn = OpEn.RMV + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 248(0xF8) + |] + [| // index 249(0xF9) + |] + [| // index 250(0xFA) + |] + [| // index 251(0xFB) + |] + [| // index 252(0xFC) + |] + [| // index 253(0xFD) + |] + [| // index 254(0xFE) + |] + [| // index 255(0xFF) + |] + |] + +let (vexThree3A: InstructionCore[][]) = + [| + [| // index 0(0x00) + { OpcodeByte = 0u + Opcode = Opcode.VPERMQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 1(0x01) + { OpcodeByte = 1u + Opcode = Opcode.VPERMPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 2(0x02) + { OpcodeByte = 2u + Opcode = Opcode.VPBLENDD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RM 128 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 2u + Opcode = Opcode.VPBLENDD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RM 256 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 3(0x03) + |] + [| // index 4(0x04) + { OpcodeByte = 4u + Opcode = Opcode.VPERMILPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128; Imm 8 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 4u + Opcode = Opcode.VPERMILPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256; Imm 8 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 5(0x05) + { OpcodeByte = 5u + Opcode = Opcode.VPERMILPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128; Imm 8 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 5u + Opcode = Opcode.VPERMILPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256; Imm 8 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 6(0x06) + { OpcodeByte = 6u + Opcode = Opcode.VPERM2F128 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RM 256 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 7(0x07) + |] + [| // index 8(0x08) + { OpcodeByte = 8u + Opcode = Opcode.VROUNDPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 8u + Opcode = Opcode.VROUNDPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 9(0x09) + { OpcodeByte = 9u + Opcode = Opcode.VROUNDPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 9u + Opcode = Opcode.VROUNDPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 10(0x0A) + { OpcodeByte = 10u + Opcode = Opcode.VROUNDSS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 32) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 11(0x0B) + { OpcodeByte = 11u + Opcode = Opcode.VROUNDSD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 64) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 12(0x0C) + { OpcodeByte = 12u + Opcode = Opcode.VBLENDPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RM 128 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 12u + Opcode = Opcode.VBLENDPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RM 256 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 13(0x0D) + { OpcodeByte = 13u + Opcode = Opcode.VBLENDPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RM 128 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 13u + Opcode = Opcode.VBLENDPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RM 256 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 14(0x0E) + { OpcodeByte = 14u + Opcode = Opcode.VPBLENDW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RM 128 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 14u + Opcode = Opcode.VPBLENDW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RM 256 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 15(0x0F) + { OpcodeByte = 15u + Opcode = Opcode.VPALIGNR + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RM 128 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 15u + Opcode = Opcode.VPALIGNR + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RM 256 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 16(0x10) + |] + [| // index 17(0x11) + |] + [| // index 18(0x12) + |] + [| // index 19(0x13) + |] + [| // index 20(0x14) + { OpcodeByte = 20u + Opcode = Opcode.VPEXTRB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RMdiff(32, 8); Reg(128, RegBit); Imm 8 |] + OpEn = OpEn.MRI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 21(0x15) + { OpcodeByte = 21u + Opcode = Opcode.VPEXTRW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RMdiff(32, 16); Reg(128, RegBit); Imm 8 |] + OpEn = OpEn.MRI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 22(0x16) + { OpcodeByte = 22u + Opcode = Opcode.VPEXTRD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 32; Reg(128, RegBit); Imm 8 |] + OpEn = OpEn.MRI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 22u + Opcode = Opcode.VPEXTRQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 64; Reg(128, RegBit); Imm 8 |] + OpEn = OpEn.MRI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Invalid + TupleType = TupleType.NA } + |] + [| // index 23(0x17) + { OpcodeByte = 23u + Opcode = Opcode.VEXTRACTPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 32; Reg(128, RegBit); Imm 8 |] + OpEn = OpEn.MRI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 24(0x18) + { OpcodeByte = 24u + Opcode = Opcode.VINSERTF128 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RM 128 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 25(0x19) + { OpcodeByte = 25u + Opcode = Opcode.VEXTRACTF128 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(256, RegBit); Imm 8 |] + OpEn = OpEn.MRI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 26(0x1A) + |] + [| // index 27(0x1B) + |] + [| // index 28(0x1C) + |] + [| // index 29(0x1D) + { OpcodeByte = 29u + Opcode = Opcode.VCVTPS2PH + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RMdiff(128, 64) + Reg(128, RegBit) + Imm 8 |] + OpEn = OpEn.MRI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 29u + Opcode = Opcode.VCVTPS2PH + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(256, RegBit); Imm 8 |] + OpEn = OpEn.MRI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 30(0x1E) + |] + [| // index 31(0x1F) + |] + [| // index 32(0x20) + { OpcodeByte = 32u + Opcode = Opcode.VPINSRB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(32, 8) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 33(0x21) + { OpcodeByte = 33u + Opcode = Opcode.VINSERTPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 32) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 34(0x22) + { OpcodeByte = 34u + Opcode = Opcode.VPINSRD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RM 32 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 34u + Opcode = Opcode.VPINSRQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RM 64 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Invalid + TupleType = TupleType.NA } + |] + [| // index 35(0x23) + |] + [| // index 36(0x24) + |] + [| // index 37(0x25) + |] + [| // index 38(0x26) + |] + [| // index 39(0x27) + |] + [| // index 40(0x28) + |] + [| // index 41(0x29) + |] + [| // index 42(0x2A) + |] + [| // index 43(0x2B) + |] + [| // index 44(0x2C) + |] + [| // index 45(0x2D) + |] + [| // index 46(0x2E) + |] + [| // index 47(0x2F) + |] + [| // index 48(0x30) + { OpcodeByte = 48u + Opcode = Opcode.KSHIFTRW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); OpMaskReg(RMBit); Imm 8 |] + OpEn = OpEn.RRI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 48u + Opcode = Opcode.KSHIFTRB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); OpMaskReg(RMBit); Imm 8 |] + OpEn = OpEn.RRI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 49(0x31) + { OpcodeByte = 49u + Opcode = Opcode.KSHIFTRQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); OpMaskReg(RMBit); Imm 8 |] + OpEn = OpEn.RRI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 49u + Opcode = Opcode.KSHIFTRD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); OpMaskReg(RMBit); Imm 8 |] + OpEn = OpEn.RRI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 50(0x32) + { OpcodeByte = 50u + Opcode = Opcode.KSHIFTLW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); OpMaskReg(RMBit); Imm 8 |] + OpEn = OpEn.RRI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 50u + Opcode = Opcode.KSHIFTLB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); OpMaskReg(RMBit); Imm 8 |] + OpEn = OpEn.RRI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 51(0x33) + { OpcodeByte = 51u + Opcode = Opcode.KSHIFTLQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); OpMaskReg(RMBit); Imm 8 |] + OpEn = OpEn.RRI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 51u + Opcode = Opcode.KSHIFTLD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); OpMaskReg(RMBit); Imm 8 |] + OpEn = OpEn.RRI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 52(0x34) + |] + [| // index 53(0x35) + |] + [| // index 54(0x36) + |] + [| // index 55(0x37) + |] + [| // index 56(0x38) + { OpcodeByte = 56u + Opcode = Opcode.VINSERTI128 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RM 128 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 57(0x39) + { OpcodeByte = 57u + Opcode = Opcode.VEXTRACTI128 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(256, RegBit); Imm 8 |] + OpEn = OpEn.MRI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 58(0x3A) + |] + [| // index 59(0x3B) + |] + [| // index 60(0x3C) + |] + [| // index 61(0x3D) + |] + [| // index 62(0x3E) + |] + [| // index 63(0x3F) + |] + [| // index 64(0x40) + { OpcodeByte = 64u + Opcode = Opcode.VDPPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RM 128 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 64u + Opcode = Opcode.VDPPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RM 256 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 65(0x41) + { OpcodeByte = 65u + Opcode = Opcode.VDPPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RM 128 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 66(0x42) + { OpcodeByte = 66u + Opcode = Opcode.VMPSADBW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RM 128 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 66u + Opcode = Opcode.VMPSADBW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RM 256 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 67(0x43) + |] + [| // index 68(0x44) + { OpcodeByte = 68u + Opcode = Opcode.VPCLMULQDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RM 128 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 68u + Opcode = Opcode.VPCLMULQDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RM 256 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 69(0x45) + |] + [| // index 70(0x46) + { OpcodeByte = 70u + Opcode = Opcode.VPERM2I128 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RM 256 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 71(0x47) + |] + [| // index 72(0x48) + |] + [| // index 73(0x49) + |] + [| // index 74(0x4A) + { OpcodeByte = 74u + Opcode = Opcode.VBLENDVPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RM 128 + Reg(128, IS4) |] + OpEn = OpEn.RVMR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 74u + Opcode = Opcode.VBLENDVPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RM 256 + Reg(256, IS4) |] + OpEn = OpEn.RVMR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 75(0x4B) + { OpcodeByte = 75u + Opcode = Opcode.VBLENDVPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RM 128 + Reg(128, IS4) |] + OpEn = OpEn.RVMR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 75u + Opcode = Opcode.VBLENDVPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RM 256 + Reg(256, IS4) |] + OpEn = OpEn.RVMR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 76(0x4C) + { OpcodeByte = 76u + Opcode = Opcode.VPBLENDVB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RM 128 + Reg(128, IS4) |] + OpEn = OpEn.RVMR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 76u + Opcode = Opcode.VPBLENDVB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RM 256 + Reg(256, IS4) |] + OpEn = OpEn.RVMR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 77(0x4D) + |] + [| // index 78(0x4E) + |] + [| // index 79(0x4F) + |] + [| // index 80(0x50) + |] + [| // index 81(0x51) + |] + [| // index 82(0x52) + |] + [| // index 83(0x53) + |] + [| // index 84(0x54) + |] + [| // index 85(0x55) + |] + [| // index 86(0x56) + |] + [| // index 87(0x57) + |] + [| // index 88(0x58) + |] + [| // index 89(0x59) + |] + [| // index 90(0x5A) + |] + [| // index 91(0x5B) + |] + [| // index 92(0x5C) + |] + [| // index 93(0x5D) + |] + [| // index 94(0x5E) + |] + [| // index 95(0x5F) + |] + [| // index 96(0x60) + { OpcodeByte = 96u + Opcode = Opcode.VPCMPESTRM + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 97(0x61) + { OpcodeByte = 97u + Opcode = Opcode.VPCMPESTRI + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 98(0x62) + { OpcodeByte = 98u + Opcode = Opcode.VPCMPISTRM + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128; Imm 8 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 99(0x63) + { OpcodeByte = 99u + Opcode = Opcode.VPCMPISTRI + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128; Imm 8 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 100(0x64) + |] + [| // index 101(0x65) + |] + [| // index 102(0x66) + |] + [| // index 103(0x67) + |] + [| // index 104(0x68) + |] + [| // index 105(0x69) + |] + [| // index 106(0x6A) + |] + [| // index 107(0x6B) + |] + [| // index 108(0x6C) + |] + [| // index 109(0x6D) + |] + [| // index 110(0x6E) + |] + [| // index 111(0x6F) + |] + [| // index 112(0x70) + |] + [| // index 113(0x71) + |] + [| // index 114(0x72) + |] + [| // index 115(0x73) + |] + [| // index 116(0x74) + |] + [| // index 117(0x75) + |] + [| // index 118(0x76) + |] + [| // index 119(0x77) + |] + [| // index 120(0x78) + |] + [| // index 121(0x79) + |] + [| // index 122(0x7A) + |] + [| // index 123(0x7B) + |] + [| // index 124(0x7C) + |] + [| // index 125(0x7D) + |] + [| // index 126(0x7E) + |] + [| // index 127(0x7F) + |] + [| // index 128(0x80) + |] + [| // index 129(0x81) + |] + [| // index 130(0x82) + |] + [| // index 131(0x83) + |] + [| // index 132(0x84) + |] + [| // index 133(0x85) + |] + [| // index 134(0x86) + |] + [| // index 135(0x87) + |] + [| // index 136(0x88) + |] + [| // index 137(0x89) + |] + [| // index 138(0x8A) + |] + [| // index 139(0x8B) + |] + [| // index 140(0x8C) + |] + [| // index 141(0x8D) + |] + [| // index 142(0x8E) + |] + [| // index 143(0x8F) + |] + [| // index 144(0x90) + |] + [| // index 145(0x91) + |] + [| // index 146(0x92) + |] + [| // index 147(0x93) + |] + [| // index 148(0x94) + |] + [| // index 149(0x95) + |] + [| // index 150(0x96) + |] + [| // index 151(0x97) + |] + [| // index 152(0x98) + |] + [| // index 153(0x99) + |] + [| // index 154(0x9A) + |] + [| // index 155(0x9B) + |] + [| // index 156(0x9C) + |] + [| // index 157(0x9D) + |] + [| // index 158(0x9E) + |] + [| // index 159(0x9F) + |] + [| // index 160(0xA0) + |] + [| // index 161(0xA1) + |] + [| // index 162(0xA2) + |] + [| // index 163(0xA3) + |] + [| // index 164(0xA4) + |] + [| // index 165(0xA5) + |] + [| // index 166(0xA6) + |] + [| // index 167(0xA7) + |] + [| // index 168(0xA8) + |] + [| // index 169(0xA9) + |] + [| // index 170(0xAA) + |] + [| // index 171(0xAB) + |] + [| // index 172(0xAC) + |] + [| // index 173(0xAD) + |] + [| // index 174(0xAE) + |] + [| // index 175(0xAF) + |] + [| // index 176(0xB0) + |] + [| // index 177(0xB1) + |] + [| // index 178(0xB2) + |] + [| // index 179(0xB3) + |] + [| // index 180(0xB4) + |] + [| // index 181(0xB5) + |] + [| // index 182(0xB6) + |] + [| // index 183(0xB7) + |] + [| // index 184(0xB8) + |] + [| // index 185(0xB9) + |] + [| // index 186(0xBA) + |] + [| // index 187(0xBB) + |] + [| // index 188(0xBC) + |] + [| // index 189(0xBD) + |] + [| // index 190(0xBE) + |] + [| // index 191(0xBF) + |] + [| // index 192(0xC0) + |] + [| // index 193(0xC1) + |] + [| // index 194(0xC2) + |] + [| // index 195(0xC3) + |] + [| // index 196(0xC4) + |] + [| // index 197(0xC5) + |] + [| // index 198(0xC6) + |] + [| // index 199(0xC7) + |] + [| // index 200(0xC8) + |] + [| // index 201(0xC9) + |] + [| // index 202(0xCA) + |] + [| // index 203(0xCB) + |] + [| // index 204(0xCC) + |] + [| // index 205(0xCD) + |] + [| // index 206(0xCE) + { OpcodeByte = 206u + Opcode = Opcode.VGF2P8AFFINEQB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RM 128 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 206u + Opcode = Opcode.VGF2P8AFFINEQB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RM 256 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 207(0xCF) + { OpcodeByte = 207u + Opcode = Opcode.VGF2P8AFFINEINVQB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RM 128 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 207u + Opcode = Opcode.VGF2P8AFFINEINVQB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RM 256 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 208(0xD0) + |] + [| // index 209(0xD1) + |] + [| // index 210(0xD2) + |] + [| // index 211(0xD3) + |] + [| // index 212(0xD4) + |] + [| // index 213(0xD5) + |] + [| // index 214(0xD6) + |] + [| // index 215(0xD7) + |] + [| // index 216(0xD8) + |] + [| // index 217(0xD9) + |] + [| // index 218(0xDA) + |] + [| // index 219(0xDB) + |] + [| // index 220(0xDC) + |] + [| // index 221(0xDD) + |] + [| // index 222(0xDE) + { OpcodeByte = 222u + Opcode = Opcode.VSM3RNDS2 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RM 128 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 223(0xDF) + { OpcodeByte = 223u + Opcode = Opcode.VAESKEYGENASSIST + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 224(0xE0) + |] + [| // index 225(0xE1) + |] + [| // index 226(0xE2) + |] + [| // index 227(0xE3) + |] + [| // index 228(0xE4) + |] + [| // index 229(0xE5) + |] + [| // index 230(0xE6) + |] + [| // index 231(0xE7) + |] + [| // index 232(0xE8) + |] + [| // index 233(0xE9) + |] + [| // index 234(0xEA) + |] + [| // index 235(0xEB) + |] + [| // index 236(0xEC) + |] + [| // index 237(0xED) + |] + [| // index 238(0xEE) + |] + [| // index 239(0xEF) + |] + [| // index 240(0xF0) + { OpcodeByte = 240u + Opcode = Opcode.RORX + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RM 32; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 240u + Opcode = Opcode.RORX + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RM 64; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.NA } + |] + [| // index 241(0xF1) + |] + [| // index 242(0xF2) + |] + [| // index 243(0xF3) + |] + [| // index 244(0xF4) + |] + [| // index 245(0xF5) + |] + [| // index 246(0xF6) + |] + [| // index 247(0xF7) + |] + [| // index 248(0xF8) + |] + [| // index 249(0xF9) + |] + [| // index 250(0xFA) + |] + [| // index 251(0xFB) + |] + [| // index 252(0xFC) + |] + [| // index 253(0xFD) + |] + [| // index 254(0xFE) + |] + [| // index 255(0xFF) + |] + |] + +let (evexTwo: InstructionCore[][]) = + [| + [| // index 0(0x00) + |] + [| // index 1(0x01) + |] + [| // index 2(0x02) + |] + [| // index 3(0x03) + |] + [| // index 4(0x04) + |] + [| // index 5(0x05) + |] + [| // index 6(0x06) + |] + [| // index 7(0x07) + |] + [| // index 8(0x08) + |] + [| // index 9(0x09) + |] + [| // index 10(0x0A) + |] + [| // index 11(0x0B) + |] + [| // index 12(0x0C) + |] + [| // index 13(0x0D) + |] + [| // index 14(0x0E) + |] + [| // index 15(0x0F) + |] + [| // index 16(0x10) + { OpcodeByte = 16u + Opcode = Opcode.VMOVSD + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + Reg(128, RMBit) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 16u + Opcode = Opcode.VMOVSD + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Mem 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 16u + Opcode = Opcode.VMOVSS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + Reg(128, RMBit) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 16u + Opcode = Opcode.VMOVSS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Mem 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 16u + Opcode = Opcode.VMOVUPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 16u + Opcode = Opcode.VMOVUPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 16u + Opcode = Opcode.VMOVUPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RM 512 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 16u + Opcode = Opcode.VMOVUPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 16u + Opcode = Opcode.VMOVUPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 16u + Opcode = Opcode.VMOVUPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RM 512 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 17(0x11) + { OpcodeByte = 17u + Opcode = Opcode.VMOVSD + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RMBit) + Reg(128, VVVV) + Reg(128, RegBit) |] + OpEn = OpEn.E + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 17u + Opcode = Opcode.VMOVSD + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 64; Reg(128, RegBit) |] + OpEn = OpEn.G + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 17u + Opcode = Opcode.VMOVSS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RMBit) + Reg(128, VVVV) + Reg(128, RegBit) |] + OpEn = OpEn.E + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 17u + Opcode = Opcode.VMOVSS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 32; Reg(128, RegBit) |] + OpEn = OpEn.G + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 17u + Opcode = Opcode.VMOVUPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 17u + Opcode = Opcode.VMOVUPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 256; Reg(256, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 17u + Opcode = Opcode.VMOVUPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 512; Reg(512, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 17u + Opcode = Opcode.VMOVUPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 17u + Opcode = Opcode.VMOVUPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 256; Reg(256, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 17u + Opcode = Opcode.VMOVUPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 512; Reg(512, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 18(0x12) + { OpcodeByte = 18u + Opcode = Opcode.VMOVDDUP + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.MOVDDUP } + { OpcodeByte = 18u + Opcode = Opcode.VMOVDDUP + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.MOVDDUP } + { OpcodeByte = 18u + Opcode = Opcode.VMOVDDUP + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RM 512 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.MOVDDUP } + { OpcodeByte = 18u + Opcode = Opcode.VMOVHLPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + Reg(128, RMBit) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 18u + Opcode = Opcode.VMOVLPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); Mem 64 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 18u + Opcode = Opcode.VMOVLPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); Mem 64 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple2 } + { OpcodeByte = 18u + Opcode = Opcode.VMOVSLDUP + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 18u + Opcode = Opcode.VMOVSLDUP + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 18u + Opcode = Opcode.VMOVSLDUP + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RM 512 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 19(0x13) + { OpcodeByte = 19u + Opcode = Opcode.VMOVLPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 64; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 19u + Opcode = Opcode.VMOVLPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 64; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple2 } + |] + [| // index 20(0x14) + { OpcodeByte = 20u + Opcode = Opcode.VUNPCKLPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 20u + Opcode = Opcode.VUNPCKLPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 20u + Opcode = Opcode.VUNPCKLPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 20u + Opcode = Opcode.VUNPCKLPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 20u + Opcode = Opcode.VUNPCKLPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 20u + Opcode = Opcode.VUNPCKLPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 21(0x15) + { OpcodeByte = 21u + Opcode = Opcode.VUNPCKHPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 21u + Opcode = Opcode.VUNPCKHPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 21u + Opcode = Opcode.VUNPCKHPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 21u + Opcode = Opcode.VUNPCKHPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 21u + Opcode = Opcode.VUNPCKHPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 21u + Opcode = Opcode.VUNPCKHPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 22(0x16) + { OpcodeByte = 22u + Opcode = Opcode.VMOVHPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); Mem 64 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 22u + Opcode = Opcode.VMOVHPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); Mem 64 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple2 } + { OpcodeByte = 22u + Opcode = Opcode.VMOVLHPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + Reg(128, RMBit) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 22u + Opcode = Opcode.VMOVSHDUP + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 22u + Opcode = Opcode.VMOVSHDUP + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 22u + Opcode = Opcode.VMOVSHDUP + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RM 512 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 23(0x17) + { OpcodeByte = 23u + Opcode = Opcode.VMOVHPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 64; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 23u + Opcode = Opcode.VMOVHPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 64; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple2 } + |] + [| // index 24(0x18) + |] + [| // index 25(0x19) + |] + [| // index 26(0x1A) + |] + [| // index 27(0x1B) + |] + [| // index 28(0x1C) + |] + [| // index 29(0x1D) + |] + [| // index 30(0x1E) + |] + [| // index 31(0x1F) + |] + [| // index 32(0x20) + |] + [| // index 33(0x21) + |] + [| // index 34(0x22) + |] + [| // index 35(0x23) + |] + [| // index 36(0x24) + |] + [| // index 37(0x25) + |] + [| // index 38(0x26) + |] + [| // index 39(0x27) + |] + [| // index 40(0x28) + { OpcodeByte = 40u + Opcode = Opcode.VMOVAPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 40u + Opcode = Opcode.VMOVAPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 40u + Opcode = Opcode.VMOVAPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RM 512 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 40u + Opcode = Opcode.VMOVAPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 40u + Opcode = Opcode.VMOVAPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 40u + Opcode = Opcode.VMOVAPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RM 512 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 41(0x29) + { OpcodeByte = 41u + Opcode = Opcode.VMOVAPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 41u + Opcode = Opcode.VMOVAPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 256; Reg(256, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 41u + Opcode = Opcode.VMOVAPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 512; Reg(512, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 41u + Opcode = Opcode.VMOVAPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 41u + Opcode = Opcode.VMOVAPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 256; Reg(256, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 41u + Opcode = Opcode.VMOVAPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 512; Reg(512, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 42(0x2A) + { OpcodeByte = 42u + Opcode = Opcode.VCVTSI2SD + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 32 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 42u + Opcode = Opcode.VCVTSI2SD + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMEr(64, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 42u + Opcode = Opcode.VCVTSI2SS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMEr(32, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 42u + Opcode = Opcode.VCVTSI2SS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMEr(64, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 43(0x2B) + { OpcodeByte = 43u + Opcode = Opcode.VMOVNTPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 128; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 43u + Opcode = Opcode.VMOVNTPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 256; Reg(256, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 43u + Opcode = Opcode.VMOVNTPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 512; Reg(512, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 43u + Opcode = Opcode.VMOVNTPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 128; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 43u + Opcode = Opcode.VMOVNTPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 256; Reg(256, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 43u + Opcode = Opcode.VMOVNTPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 512; Reg(512, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 44(0x2C) + { OpcodeByte = 44u + Opcode = Opcode.VCVTTSD2SI + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RMSae(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Fixed } + { OpcodeByte = 44u + Opcode = Opcode.VCVTTSD2SI + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RMSae(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.Tuple1Fixed } + { OpcodeByte = 44u + Opcode = Opcode.VCVTTSS2SI + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RMSae(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Fixed } + { OpcodeByte = 44u + Opcode = Opcode.VCVTTSS2SI + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RMSae(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.Tuple1Fixed } + |] + [| // index 45(0x2D) + { OpcodeByte = 45u + Opcode = Opcode.VCVTSD2SI + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RMEr(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Fixed } + { OpcodeByte = 45u + Opcode = Opcode.VCVTSD2SI + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RMEr(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.Tuple1Fixed } + { OpcodeByte = 45u + Opcode = Opcode.VCVTSS2SI + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RMEr(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Fixed } + { OpcodeByte = 45u + Opcode = Opcode.VCVTSS2SI + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RMEr(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.Tuple1Fixed } + |] + [| // index 46(0x2E) + { OpcodeByte = 46u + Opcode = Opcode.VUCOMISD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMSae(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 46u + Opcode = Opcode.VUCOMISS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMSae(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 47(0x2F) + { OpcodeByte = 47u + Opcode = Opcode.VCOMISD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMSae(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 47u + Opcode = Opcode.VCOMISS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMSae(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 48(0x30) + |] + [| // index 49(0x31) + |] + [| // index 50(0x32) + |] + [| // index 51(0x33) + |] + [| // index 52(0x34) + |] + [| // index 53(0x35) + |] + [| // index 54(0x36) + |] + [| // index 55(0x37) + |] + [| // index 56(0x38) + |] + [| // index 57(0x39) + |] + [| // index 58(0x3A) + |] + [| // index 59(0x3B) + |] + [| // index 60(0x3C) + |] + [| // index 61(0x3D) + |] + [| // index 62(0x3E) + |] + [| // index 63(0x3F) + |] + [| // index 64(0x40) + |] + [| // index 65(0x41) + |] + [| // index 66(0x42) + |] + [| // index 67(0x43) + |] + [| // index 68(0x44) + |] + [| // index 69(0x45) + |] + [| // index 70(0x46) + |] + [| // index 71(0x47) + |] + [| // index 72(0x48) + |] + [| // index 73(0x49) + |] + [| // index 74(0x4A) + |] + [| // index 75(0x4B) + |] + [| // index 76(0x4C) + |] + [| // index 77(0x4D) + |] + [| // index 78(0x4E) + |] + [| // index 79(0x4F) + |] + [| // index 80(0x50) + |] + [| // index 81(0x51) + { OpcodeByte = 81u + Opcode = Opcode.VSQRTPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMBcst(128, 128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 81u + Opcode = Opcode.VSQRTPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMBcst(256, 256, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 81u + Opcode = Opcode.VSQRTPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + RMBcstEr(512, 512, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 81u + Opcode = Opcode.VSQRTPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMBcst(128, 128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 81u + Opcode = Opcode.VSQRTPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMBcst(256, 256, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 81u + Opcode = Opcode.VSQRTPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + RMBcstEr(512, 512, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 81u + Opcode = Opcode.VSQRTSD + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMEr(128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 81u + Opcode = Opcode.VSQRTSS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMEr(128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 82(0x52) + |] + [| // index 83(0x53) + |] + [| // index 84(0x54) + { OpcodeByte = 84u + Opcode = Opcode.VANDPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 84u + Opcode = Opcode.VANDPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 84u + Opcode = Opcode.VANDPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 84u + Opcode = Opcode.VANDPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 84u + Opcode = Opcode.VANDPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 84u + Opcode = Opcode.VANDPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 85(0x55) + { OpcodeByte = 85u + Opcode = Opcode.VANDNPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 85u + Opcode = Opcode.VANDNPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 85u + Opcode = Opcode.VANDNPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 85u + Opcode = Opcode.VANDNPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 85u + Opcode = Opcode.VANDNPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 85u + Opcode = Opcode.VANDNPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 86(0x56) + { OpcodeByte = 86u + Opcode = Opcode.VORPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 86u + Opcode = Opcode.VORPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 86u + Opcode = Opcode.VORPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 86u + Opcode = Opcode.VORPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 86u + Opcode = Opcode.VORPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 86u + Opcode = Opcode.VORPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 87(0x57) + { OpcodeByte = 87u + Opcode = Opcode.VXORPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 87u + Opcode = Opcode.VXORPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 87u + Opcode = Opcode.VXORPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 87u + Opcode = Opcode.VXORPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 87u + Opcode = Opcode.VXORPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 87u + Opcode = Opcode.VXORPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 88(0x58) + { OpcodeByte = 88u + Opcode = Opcode.VADDPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 88u + Opcode = Opcode.VADDPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 88u + Opcode = Opcode.VADDPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstEr(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 88u + Opcode = Opcode.VADDPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 88u + Opcode = Opcode.VADDPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 88u + Opcode = Opcode.VADDPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstEr(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 88u + Opcode = Opcode.VADDSD + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMEr(128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 88u + Opcode = Opcode.VADDSS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMEr(128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 89(0x59) + { OpcodeByte = 89u + Opcode = Opcode.VMULPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 89u + Opcode = Opcode.VMULPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 89u + Opcode = Opcode.VMULPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstEr(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 89u + Opcode = Opcode.VMULPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 89u + Opcode = Opcode.VMULPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 89u + Opcode = Opcode.VMULPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstEr(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 89u + Opcode = Opcode.VMULSD + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMEr(128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 89u + Opcode = Opcode.VMULSS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMEr(128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 90(0x5A) + { OpcodeByte = 90u + Opcode = Opcode.VCVTPD2PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMBcst(128, 128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 90u + Opcode = Opcode.VCVTPD2PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMBcst(256, 256, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 90u + Opcode = Opcode.VCVTPD2PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + RMBcstEr(512, 512, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 90u + Opcode = Opcode.VCVTPS2PD + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMBcst(128, 64, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Half } + { OpcodeByte = 90u + Opcode = Opcode.VCVTPS2PD + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMBcst(128, 128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Half } + { OpcodeByte = 90u + Opcode = Opcode.VCVTPS2PD + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + RMBcstSae(256, 256, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Half } + { OpcodeByte = 90u + Opcode = Opcode.VCVTSD2SS + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMEr(128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 90u + Opcode = Opcode.VCVTSS2SD + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMSae(128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 91(0x5B) + { OpcodeByte = 91u + Opcode = Opcode.VCVTDQ2PS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMBcst(128, 128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 91u + Opcode = Opcode.VCVTDQ2PS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMBcst(256, 256, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 91u + Opcode = Opcode.VCVTDQ2PS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + RMBcstEr(512, 512, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 91u + Opcode = Opcode.VCVTPS2DQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMBcst(128, 128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 91u + Opcode = Opcode.VCVTPS2DQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMBcst(256, 256, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 91u + Opcode = Opcode.VCVTPS2DQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + RMBcstEr(512, 512, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 91u + Opcode = Opcode.VCVTTPS2DQ + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMBcst(128, 128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 91u + Opcode = Opcode.VCVTTPS2DQ + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMBcst(256, 256, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 91u + Opcode = Opcode.VCVTTPS2DQ + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + RMBcstSae(512, 512, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 91u + Opcode = Opcode.VCVTQQ2PS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMBcst(128, 128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 91u + Opcode = Opcode.VCVTQQ2PS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMBcst(256, 256, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 91u + Opcode = Opcode.VCVTQQ2PS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + RMBcstEr(512, 512, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 92(0x5C) + { OpcodeByte = 92u + Opcode = Opcode.VSUBPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 92u + Opcode = Opcode.VSUBPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 92u + Opcode = Opcode.VSUBPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstEr(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 92u + Opcode = Opcode.VSUBPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 92u + Opcode = Opcode.VSUBPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 92u + Opcode = Opcode.VSUBPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstEr(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 92u + Opcode = Opcode.VSUBSD + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMEr(128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 92u + Opcode = Opcode.VSUBSS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMEr(128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 93(0x5D) + { OpcodeByte = 93u + Opcode = Opcode.VMINPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 93u + Opcode = Opcode.VMINPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 93u + Opcode = Opcode.VMINPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstSae(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 93u + Opcode = Opcode.VMINPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 93u + Opcode = Opcode.VMINPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 93u + Opcode = Opcode.VMINPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstSae(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 93u + Opcode = Opcode.VMINSD + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMSae(128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 93u + Opcode = Opcode.VMINSS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMSae(128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 94(0x5E) + { OpcodeByte = 94u + Opcode = Opcode.VDIVPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 94u + Opcode = Opcode.VDIVPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 94u + Opcode = Opcode.VDIVPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstEr(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 94u + Opcode = Opcode.VDIVPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 94u + Opcode = Opcode.VDIVPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 94u + Opcode = Opcode.VDIVPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstEr(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 94u + Opcode = Opcode.VDIVSD + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMEr(128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 94u + Opcode = Opcode.VDIVSS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMEr(128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 95(0x5F) + { OpcodeByte = 95u + Opcode = Opcode.VMAXPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 95u + Opcode = Opcode.VMAXPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 95u + Opcode = Opcode.VMAXPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstSae(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 95u + Opcode = Opcode.VMAXPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 95u + Opcode = Opcode.VMAXPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 95u + Opcode = Opcode.VMAXPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstSae(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 95u + Opcode = Opcode.VMAXSD + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMSae(128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 95u + Opcode = Opcode.VMAXSS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMSae(128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 96(0x60) + { OpcodeByte = 96u + Opcode = Opcode.VPUNPCKLBW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 96u + Opcode = Opcode.VPUNPCKLBW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 96u + Opcode = Opcode.VPUNPCKLBW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 97(0x61) + { OpcodeByte = 97u + Opcode = Opcode.VPUNPCKLWD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 97u + Opcode = Opcode.VPUNPCKLWD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 97u + Opcode = Opcode.VPUNPCKLWD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 98(0x62) + { OpcodeByte = 98u + Opcode = Opcode.VPUNPCKLDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 98u + Opcode = Opcode.VPUNPCKLDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 98u + Opcode = Opcode.VPUNPCKLDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 99(0x63) + { OpcodeByte = 99u + Opcode = Opcode.VPACKSSWB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 99u + Opcode = Opcode.VPACKSSWB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 99u + Opcode = Opcode.VPACKSSWB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 100(0x64) + { OpcodeByte = 100u + Opcode = Opcode.VPCMPGTB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 100u + Opcode = Opcode.VPCMPGTB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 100u + Opcode = Opcode.VPCMPGTB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 101(0x65) + { OpcodeByte = 101u + Opcode = Opcode.VPCMPGTW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 101u + Opcode = Opcode.VPCMPGTW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 101u + Opcode = Opcode.VPCMPGTW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 102(0x66) + { OpcodeByte = 102u + Opcode = Opcode.VPCMPGTD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 102u + Opcode = Opcode.VPCMPGTD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 102u + Opcode = Opcode.VPCMPGTD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 103(0x67) + { OpcodeByte = 103u + Opcode = Opcode.VPACKUSWB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 103u + Opcode = Opcode.VPACKUSWB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 103u + Opcode = Opcode.VPACKUSWB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 104(0x68) + { OpcodeByte = 104u + Opcode = Opcode.VPUNPCKHBW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 104u + Opcode = Opcode.VPUNPCKHBW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 104u + Opcode = Opcode.VPUNPCKHBW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 105(0x69) + { OpcodeByte = 105u + Opcode = Opcode.VPUNPCKHWD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 105u + Opcode = Opcode.VPUNPCKHWD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 105u + Opcode = Opcode.VPUNPCKHWD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 106(0x6A) + { OpcodeByte = 106u + Opcode = Opcode.VPUNPCKHDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 106u + Opcode = Opcode.VPUNPCKHDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 106u + Opcode = Opcode.VPUNPCKHDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 107(0x6B) + { OpcodeByte = 107u + Opcode = Opcode.VPACKSSDW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 107u + Opcode = Opcode.VPACKSSDW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 107u + Opcode = Opcode.VPACKSSDW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 108(0x6C) + { OpcodeByte = 108u + Opcode = Opcode.VPUNPCKLQDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 108u + Opcode = Opcode.VPUNPCKLQDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 108u + Opcode = Opcode.VPUNPCKLQDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 109(0x6D) + { OpcodeByte = 109u + Opcode = Opcode.VPUNPCKHQDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 109u + Opcode = Opcode.VPUNPCKHQDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 109u + Opcode = Opcode.VPUNPCKHQDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 110(0x6E) + { OpcodeByte = 110u + Opcode = Opcode.VMOVD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 32 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 110u + Opcode = Opcode.VMOVQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 64 |] + OpEn = OpEn.RM + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 111(0x6F) + { OpcodeByte = 111u + Opcode = Opcode.VMOVDQA32 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 111u + Opcode = Opcode.VMOVDQA32 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 111u + Opcode = Opcode.VMOVDQA32 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RM 512 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 111u + Opcode = Opcode.VMOVDQA64 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 111u + Opcode = Opcode.VMOVDQA64 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 111u + Opcode = Opcode.VMOVDQA64 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RM 512 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 111u + Opcode = Opcode.VMOVDQU8 + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 111u + Opcode = Opcode.VMOVDQU8 + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 111u + Opcode = Opcode.VMOVDQU8 + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RM 512 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 111u + Opcode = Opcode.VMOVDQU16 + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 111u + Opcode = Opcode.VMOVDQU16 + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 111u + Opcode = Opcode.VMOVDQU16 + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RM 512 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 111u + Opcode = Opcode.VMOVDQU32 + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 111u + Opcode = Opcode.VMOVDQU32 + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 111u + Opcode = Opcode.VMOVDQU32 + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RM 512 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 111u + Opcode = Opcode.VMOVDQU64 + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 111u + Opcode = Opcode.VMOVDQU64 + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 111u + Opcode = Opcode.VMOVDQU64 + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RM 512 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 112(0x70) + { OpcodeByte = 112u + Opcode = Opcode.VPSHUFD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + RMBcst(128, 128, 32) + Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 112u + Opcode = Opcode.VPSHUFD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + RMBcst(256, 256, 32) + Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 112u + Opcode = Opcode.VPSHUFD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + RMBcst(512, 512, 32) + Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 112u + Opcode = Opcode.VPSHUFHW + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 112u + Opcode = Opcode.VPSHUFHW + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 112u + Opcode = Opcode.VPSHUFHW + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RM 512; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 112u + Opcode = Opcode.VPSHUFLW + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 112u + Opcode = Opcode.VPSHUFLW + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 112u + Opcode = Opcode.VPSHUFLW + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RM 512; Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 113(0x71) + { OpcodeByte = 113u + Opcode = Opcode.VPSLLW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRMOp6 OpRegMem + Operands = [| Reg(128, VVVV); RM 128; Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 113u + Opcode = Opcode.VPSLLW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRMOp6 OpRegMem + Operands = [| Reg(256, VVVV); RM 256; Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 113u + Opcode = Opcode.VPSLLW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRMOp6 OpRegMem + Operands = [| Reg(512, VVVV); RM 512; Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 113u + Opcode = Opcode.VPSRAW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| Reg(128, VVVV); RM 128; Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 113u + Opcode = Opcode.VPSRAW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| Reg(256, VVVV); RM 256; Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 113u + Opcode = Opcode.VPSRAW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| Reg(512, VVVV); RM 512; Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 113u + Opcode = Opcode.VPSRLW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| Reg(128, VVVV); RM 128; Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 113u + Opcode = Opcode.VPSRLW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| Reg(256, VVVV); RM 256; Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 113u + Opcode = Opcode.VPSRLW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| Reg(512, VVVV); RM 512; Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 114(0x72) + { OpcodeByte = 114u + Opcode = Opcode.VPSLLD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRMOp6 OpRegMem + Operands = [| Reg(128, VVVV) + RMBcst(128, 128, 32) + Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 114u + Opcode = Opcode.VPSLLD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRMOp6 OpRegMem + Operands = [| Reg(256, VVVV) + RMBcst(256, 256, 32) + Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 114u + Opcode = Opcode.VPSLLD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRMOp6 OpRegMem + Operands = [| Reg(512, VVVV) + RMBcst(512, 512, 32) + Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 114u + Opcode = Opcode.VPSRAD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| Reg(128, VVVV) + RMBcst(128, 128, 32) + Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 114u + Opcode = Opcode.VPSRAD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| Reg(256, VVVV) + RMBcst(256, 256, 32) + Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 114u + Opcode = Opcode.VPSRAD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| Reg(512, VVVV) + RMBcst(512, 512, 32) + Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 114u + Opcode = Opcode.VPSRAQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| Reg(128, VVVV) + RMBcst(128, 128, 64) + Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 114u + Opcode = Opcode.VPSRAQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| Reg(256, VVVV) + RMBcst(256, 256, 64) + Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 114u + Opcode = Opcode.VPSRAQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRMOp4 OpRegMem + Operands = [| Reg(512, VVVV) + RMBcst(512, 512, 64) + Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 114u + Opcode = Opcode.VPSRLD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| Reg(128, VVVV) + RMBcst(128, 128, 32) + Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 114u + Opcode = Opcode.VPSRLD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| Reg(256, VVVV) + RMBcst(256, 256, 32) + Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 114u + Opcode = Opcode.VPSRLD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| Reg(512, VVVV) + RMBcst(512, 512, 32) + Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 114u + Opcode = Opcode.VPROLD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRMOp1 OpRegMem + Operands = [| Reg(128, VVVV) + RMBcst(128, 128, 32) + Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 114u + Opcode = Opcode.VPROLQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRMOp1 OpRegMem + Operands = [| Reg(128, VVVV) + RMBcst(128, 128, 64) + Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 114u + Opcode = Opcode.VPROLD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRMOp1 OpRegMem + Operands = [| Reg(256, VVVV) + RMBcst(256, 256, 32) + Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 114u + Opcode = Opcode.VPROLQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRMOp1 OpRegMem + Operands = [| Reg(256, VVVV) + RMBcst(256, 256, 64) + Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 114u + Opcode = Opcode.VPROLD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRMOp1 OpRegMem + Operands = [| Reg(512, VVVV) + RMBcst(512, 512, 32) + Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 114u + Opcode = Opcode.VPROLQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRMOp1 OpRegMem + Operands = [| Reg(512, VVVV) + RMBcst(512, 512, 64) + Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 114u + Opcode = Opcode.VPRORD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRMOp0 OpRegMem + Operands = [| Reg(128, VVVV) + RMBcst(128, 128, 32) + Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 114u + Opcode = Opcode.VPRORQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRMOp0 OpRegMem + Operands = [| Reg(128, VVVV) + RMBcst(128, 128, 64) + Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 114u + Opcode = Opcode.VPRORD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRMOp0 OpRegMem + Operands = [| Reg(256, VVVV) + RMBcst(256, 256, 32) + Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 114u + Opcode = Opcode.VPRORQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRMOp0 OpRegMem + Operands = [| Reg(256, VVVV) + RMBcst(256, 256, 64) + Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 114u + Opcode = Opcode.VPRORD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRMOp0 OpRegMem + Operands = [| Reg(512, VVVV) + RMBcst(512, 512, 32) + Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 114u + Opcode = Opcode.VPRORQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRMOp0 OpRegMem + Operands = [| Reg(512, VVVV) + RMBcst(512, 512, 64) + Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 115(0x73) + { OpcodeByte = 115u + Opcode = Opcode.VPSLLDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRMOp7 OpRegMem + Operands = [| Reg(128, VVVV); RM 128; Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 115u + Opcode = Opcode.VPSLLDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRMOp7 OpRegMem + Operands = [| Reg(256, VVVV); RM 256; Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 115u + Opcode = Opcode.VPSLLDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRMOp7 OpRegMem + Operands = [| Reg(512, VVVV); RM 512; Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 115u + Opcode = Opcode.VPSLLQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRMOp6 OpRegMem + Operands = [| Reg(128, VVVV) + RMBcst(128, 128, 64) + Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 115u + Opcode = Opcode.VPSLLQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRMOp6 OpRegMem + Operands = [| Reg(256, VVVV) + RMBcst(256, 256, 64) + Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 115u + Opcode = Opcode.VPSLLQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRMOp6 OpRegMem + Operands = [| Reg(512, VVVV) + RMBcst(512, 512, 64) + Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 115u + Opcode = Opcode.VPSRLDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRMOp3 OpRegMem + Operands = [| Reg(128, VVVV); RM 128; Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 115u + Opcode = Opcode.VPSRLDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRMOp3 OpRegMem + Operands = [| Reg(256, VVVV); RM 256; Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 115u + Opcode = Opcode.VPSRLDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRMOp3 OpRegMem + Operands = [| Reg(512, VVVV); RM 512; Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 115u + Opcode = Opcode.VPSRLQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| Reg(128, VVVV) + RMBcst(128, 128, 64) + Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 115u + Opcode = Opcode.VPSRLQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| Reg(256, VVVV) + RMBcst(256, 256, 64) + Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 115u + Opcode = Opcode.VPSRLQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| Reg(512, VVVV) + RMBcst(512, 512, 64) + Imm 8 |] + OpEn = OpEn.VMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 116(0x74) + { OpcodeByte = 116u + Opcode = Opcode.VPCMPEQB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 116u + Opcode = Opcode.VPCMPEQB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 116u + Opcode = Opcode.VPCMPEQB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 117(0x75) + { OpcodeByte = 117u + Opcode = Opcode.VPCMPEQW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 117u + Opcode = Opcode.VPCMPEQW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 117u + Opcode = Opcode.VPCMPEQW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 118(0x76) + { OpcodeByte = 118u + Opcode = Opcode.VPCMPEQD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 118u + Opcode = Opcode.VPCMPEQD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 118u + Opcode = Opcode.VPCMPEQD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 119(0x77) + |] + [| // index 120(0x78) + { OpcodeByte = 120u + Opcode = Opcode.VCVTTPD2UDQ + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMBcst(128, 128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 120u + Opcode = Opcode.VCVTTPD2UDQ + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMBcst(256, 256, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 120u + Opcode = Opcode.VCVTTPD2UDQ + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + RMBcstSae(512, 512, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 120u + Opcode = Opcode.VCVTTPD2UQQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMBcst(128, 128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 120u + Opcode = Opcode.VCVTTPD2UQQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMBcst(256, 256, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 120u + Opcode = Opcode.VCVTTPD2UQQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + RMBcstSae(512, 512, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 120u + Opcode = Opcode.VCVTTPS2UDQ + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMBcst(128, 128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 120u + Opcode = Opcode.VCVTTPS2UDQ + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMBcst(256, 256, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 120u + Opcode = Opcode.VCVTTPS2UDQ + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + RMBcstSae(512, 512, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 120u + Opcode = Opcode.VCVTTPS2UQQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMBcst(128, 64, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Half } + { OpcodeByte = 120u + Opcode = Opcode.VCVTTPS2UQQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMBcst(128, 128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Half } + { OpcodeByte = 120u + Opcode = Opcode.VCVTTPS2UQQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + RMBcstSae(256, 256, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Half } + { OpcodeByte = 120u + Opcode = Opcode.VCVTTSD2USI + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RMSae(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Fixed } + { OpcodeByte = 120u + Opcode = Opcode.VCVTTSD2USI + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RMSae(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.Tuple1Fixed } + { OpcodeByte = 120u + Opcode = Opcode.VCVTTSS2USI + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RMSae(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Fixed } + { OpcodeByte = 120u + Opcode = Opcode.VCVTTSS2USI + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RMSae(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.Tuple1Fixed } + |] + [| // index 121(0x79) + { OpcodeByte = 121u + Opcode = Opcode.VCVTPD2UDQ + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMBcst(128, 128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 121u + Opcode = Opcode.VCVTPD2UDQ + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMBcst(256, 256, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 121u + Opcode = Opcode.VCVTPD2UDQ + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + RMBcstEr(512, 512, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 121u + Opcode = Opcode.VCVTPD2UQQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMBcst(128, 128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 121u + Opcode = Opcode.VCVTPD2UQQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMBcst(256, 256, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 121u + Opcode = Opcode.VCVTPD2UQQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + RMBcstEr(512, 512, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 121u + Opcode = Opcode.VCVTPS2UDQ + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMBcst(128, 128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 121u + Opcode = Opcode.VCVTPS2UDQ + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMBcst(256, 256, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 121u + Opcode = Opcode.VCVTPS2UDQ + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + RMBcstEr(512, 512, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 121u + Opcode = Opcode.VCVTPS2UQQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMBcst(128, 64, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Half } + { OpcodeByte = 121u + Opcode = Opcode.VCVTPS2UQQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMBcst(128, 128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Half } + { OpcodeByte = 121u + Opcode = Opcode.VCVTPS2UQQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + RMBcstEr(256, 256, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Half } + { OpcodeByte = 121u + Opcode = Opcode.VCVTSD2USI + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RMEr(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Fixed } + { OpcodeByte = 121u + Opcode = Opcode.VCVTSD2USI + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RMEr(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.Tuple1Fixed } + { OpcodeByte = 121u + Opcode = Opcode.VCVTSS2USI + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); RMEr(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Fixed } + { OpcodeByte = 121u + Opcode = Opcode.VCVTSS2USI + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(64, RegBit); RMEr(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.Tuple1Fixed } + |] + [| // index 122(0x7A) + { OpcodeByte = 122u + Opcode = Opcode.VCVTTPD2QQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMBcst(128, 128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 122u + Opcode = Opcode.VCVTTPD2QQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMBcst(256, 256, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 122u + Opcode = Opcode.VCVTTPD2QQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + RMBcstSae(512, 512, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 122u + Opcode = Opcode.VCVTTPS2QQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMBcst(128, 64, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Half } + { OpcodeByte = 122u + Opcode = Opcode.VCVTTPS2QQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMBcst(128, 128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Half } + { OpcodeByte = 122u + Opcode = Opcode.VCVTTPS2QQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + RMBcstSae(256, 256, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Half } + { OpcodeByte = 122u + Opcode = Opcode.VCVTUDQ2PD + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMBcst(128, 64, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Half } + { OpcodeByte = 122u + Opcode = Opcode.VCVTUDQ2PD + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMBcst(128, 128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Half } + { OpcodeByte = 122u + Opcode = Opcode.VCVTUDQ2PD + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RMBcst(256, 256, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Half } + { OpcodeByte = 122u + Opcode = Opcode.VCVTUDQ2PS + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMBcst(128, 128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 122u + Opcode = Opcode.VCVTUDQ2PS + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMBcst(256, 256, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 122u + Opcode = Opcode.VCVTUDQ2PS + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + RMBcstEr(512, 512, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 122u + Opcode = Opcode.VCVTUQQ2PD + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMBcst(128, 128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 122u + Opcode = Opcode.VCVTUQQ2PD + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMBcst(256, 256, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 122u + Opcode = Opcode.VCVTUQQ2PD + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + RMBcstEr(512, 512, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 122u + Opcode = Opcode.VCVTUQQ2PS + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMBcst(128, 128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 122u + Opcode = Opcode.VCVTUQQ2PS + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMBcst(256, 256, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 122u + Opcode = Opcode.VCVTUQQ2PS + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + RMBcstEr(512, 512, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 123(0x7B) + { OpcodeByte = 123u + Opcode = Opcode.VCVTPD2QQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMBcst(128, 128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 123u + Opcode = Opcode.VCVTPD2QQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMBcst(256, 256, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 123u + Opcode = Opcode.VCVTPD2QQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + RMBcstEr(512, 512, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 123u + Opcode = Opcode.VCVTPS2QQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMBcst(128, 64, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Half } + { OpcodeByte = 123u + Opcode = Opcode.VCVTPS2QQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMBcst(128, 128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Half } + { OpcodeByte = 123u + Opcode = Opcode.VCVTPS2QQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + RMBcstEr(256, 256, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Half } + { OpcodeByte = 123u + Opcode = Opcode.VCVTUSI2SD + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 32 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 123u + Opcode = Opcode.VCVTUSI2SD + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMEr(64, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 123u + Opcode = Opcode.VCVTUSI2SS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMEr(32, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 123u + Opcode = Opcode.VCVTUSI2SS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMEr(64, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 124(0x7C) + |] + [| // index 125(0x7D) + |] + [| // index 126(0x7E) + { OpcodeByte = 126u + Opcode = Opcode.VMOVD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 32; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 126u + Opcode = Opcode.VMOVQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 64; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 126u + Opcode = Opcode.VMOVQ + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 127(0x7F) + { OpcodeByte = 127u + Opcode = Opcode.VMOVDQA32 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 127u + Opcode = Opcode.VMOVDQA32 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 256; Reg(256, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 127u + Opcode = Opcode.VMOVDQA32 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 512; Reg(512, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 127u + Opcode = Opcode.VMOVDQA64 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 127u + Opcode = Opcode.VMOVDQA64 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 256; Reg(256, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 127u + Opcode = Opcode.VMOVDQA64 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 512; Reg(512, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 127u + Opcode = Opcode.VMOVDQU8 + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 127u + Opcode = Opcode.VMOVDQU8 + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 256; Reg(256, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 127u + Opcode = Opcode.VMOVDQU8 + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 512; Reg(512, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 127u + Opcode = Opcode.VMOVDQU16 + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 127u + Opcode = Opcode.VMOVDQU16 + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 256; Reg(256, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 127u + Opcode = Opcode.VMOVDQU16 + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 512; Reg(512, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 127u + Opcode = Opcode.VMOVDQU32 + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 127u + Opcode = Opcode.VMOVDQU32 + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 256; Reg(256, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 127u + Opcode = Opcode.VMOVDQU32 + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 512; Reg(512, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 127u + Opcode = Opcode.VMOVDQU64 + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 127u + Opcode = Opcode.VMOVDQU64 + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 256; Reg(256, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 127u + Opcode = Opcode.VMOVDQU64 + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 512; Reg(512, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 128(0x80) + |] + [| // index 129(0x81) + |] + [| // index 130(0x82) + |] + [| // index 131(0x83) + |] + [| // index 132(0x84) + |] + [| // index 133(0x85) + |] + [| // index 134(0x86) + |] + [| // index 135(0x87) + |] + [| // index 136(0x88) + |] + [| // index 137(0x89) + |] + [| // index 138(0x8A) + |] + [| // index 139(0x8B) + |] + [| // index 140(0x8C) + |] + [| // index 141(0x8D) + |] + [| // index 142(0x8E) + |] + [| // index 143(0x8F) + |] + [| // index 144(0x90) + |] + [| // index 145(0x91) + |] + [| // index 146(0x92) + |] + [| // index 147(0x93) + |] + [| // index 148(0x94) + |] + [| // index 149(0x95) + |] + [| // index 150(0x96) + |] + [| // index 151(0x97) + |] + [| // index 152(0x98) + |] + [| // index 153(0x99) + |] + [| // index 154(0x9A) + |] + [| // index 155(0x9B) + |] + [| // index 156(0x9C) + |] + [| // index 157(0x9D) + |] + [| // index 158(0x9E) + |] + [| // index 159(0x9F) + |] + [| // index 160(0xA0) + |] + [| // index 161(0xA1) + |] + [| // index 162(0xA2) + |] + [| // index 163(0xA3) + |] + [| // index 164(0xA4) + |] + [| // index 165(0xA5) + |] + [| // index 166(0xA6) + |] + [| // index 167(0xA7) + |] + [| // index 168(0xA8) + |] + [| // index 169(0xA9) + |] + [| // index 170(0xAA) + |] + [| // index 171(0xAB) + |] + [| // index 172(0xAC) + |] + [| // index 173(0xAD) + |] + [| // index 174(0xAE) + |] + [| // index 175(0xAF) + |] + [| // index 176(0xB0) + |] + [| // index 177(0xB1) + |] + [| // index 178(0xB2) + |] + [| // index 179(0xB3) + |] + [| // index 180(0xB4) + |] + [| // index 181(0xB5) + |] + [| // index 182(0xB6) + |] + [| // index 183(0xB7) + |] + [| // index 184(0xB8) + |] + [| // index 185(0xB9) + |] + [| // index 186(0xBA) + |] + [| // index 187(0xBB) + |] + [| // index 188(0xBC) + |] + [| // index 189(0xBD) + |] + [| // index 190(0xBE) + |] + [| // index 191(0xBF) + |] + [| // index 192(0xC0) + |] + [| // index 193(0xC1) + |] + [| // index 194(0xC2) + { OpcodeByte = 194u + Opcode = Opcode.VCMPPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 194u + Opcode = Opcode.VCMPPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 194u + Opcode = Opcode.VCMPPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(512, VVVV) + RMBcstSae(512, 512, 64) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 194u + Opcode = Opcode.VCMPPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 194u + Opcode = Opcode.VCMPPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 194u + Opcode = Opcode.VCMPPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(512, VVVV) + RMBcstSae(512, 512, 32) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 194u + Opcode = Opcode.VCMPSD + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(128, VVVV) + RMSae(128, 64) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 194u + Opcode = Opcode.VCMPSS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(128, VVVV) + RMSae(128, 32) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 195(0xC3) + |] + [| // index 196(0xC4) + { OpcodeByte = 196u + Opcode = Opcode.VPINSRW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(32, 16) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 197(0xC5) + { OpcodeByte = 197u + Opcode = Opcode.VPEXTRW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(32, RegBit); Reg(128, RMBit); Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 198(0xC6) + { OpcodeByte = 198u + Opcode = Opcode.VSHUFPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 198u + Opcode = Opcode.VSHUFPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 198u + Opcode = Opcode.VSHUFPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 198u + Opcode = Opcode.VSHUFPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 198u + Opcode = Opcode.VSHUFPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 198u + Opcode = Opcode.VSHUFPS + PrefixType = Mandatory NP + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 199(0xC7) + |] + [| // index 200(0xC8) + |] + [| // index 201(0xC9) + |] + [| // index 202(0xCA) + |] + [| // index 203(0xCB) + |] + [| // index 204(0xCC) + |] + [| // index 205(0xCD) + |] + [| // index 206(0xCE) + |] + [| // index 207(0xCF) + |] + [| // index 208(0xD0) + |] + [| // index 209(0xD1) + { OpcodeByte = 209u + Opcode = Opcode.VPSRLW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.G + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Mem128 } + { OpcodeByte = 209u + Opcode = Opcode.VPSRLW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 128 |] + OpEn = OpEn.G + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Mem128 } + { OpcodeByte = 209u + Opcode = Opcode.VPSRLW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 128 |] + OpEn = OpEn.G + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Mem128 } + |] + [| // index 210(0xD2) + { OpcodeByte = 210u + Opcode = Opcode.VPSRLD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.G + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Mem128 } + { OpcodeByte = 210u + Opcode = Opcode.VPSRLD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 128 |] + OpEn = OpEn.G + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Mem128 } + { OpcodeByte = 210u + Opcode = Opcode.VPSRLD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 128 |] + OpEn = OpEn.G + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Mem128 } + |] + [| // index 211(0xD3) + { OpcodeByte = 211u + Opcode = Opcode.VPSRLQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.G + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Mem128 } + { OpcodeByte = 211u + Opcode = Opcode.VPSRLQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 128 |] + OpEn = OpEn.G + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Mem128 } + { OpcodeByte = 211u + Opcode = Opcode.VPSRLQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 128 |] + OpEn = OpEn.G + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Mem128 } + |] + [| // index 212(0xD4) + { OpcodeByte = 212u + Opcode = Opcode.VPADDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 212u + Opcode = Opcode.VPADDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 212u + Opcode = Opcode.VPADDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 213(0xD5) + { OpcodeByte = 213u + Opcode = Opcode.VPMULLW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 213u + Opcode = Opcode.VPMULLW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 213u + Opcode = Opcode.VPMULLW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 214(0xD6) + { OpcodeByte = 214u + Opcode = Opcode.VMOVQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RMdiff(128, 64); Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 215(0xD7) + |] + [| // index 216(0xD8) + { OpcodeByte = 216u + Opcode = Opcode.VPSUBUSB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 216u + Opcode = Opcode.VPSUBUSB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 216u + Opcode = Opcode.VPSUBUSB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 217(0xD9) + { OpcodeByte = 217u + Opcode = Opcode.VPSUBUSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 217u + Opcode = Opcode.VPSUBUSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 217u + Opcode = Opcode.VPSUBUSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 218(0xDA) + { OpcodeByte = 218u + Opcode = Opcode.VPMINUB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 218u + Opcode = Opcode.VPMINUB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 218u + Opcode = Opcode.VPMINUB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 219(0xDB) + { OpcodeByte = 219u + Opcode = Opcode.VPANDD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 219u + Opcode = Opcode.VPANDD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 219u + Opcode = Opcode.VPANDD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 219u + Opcode = Opcode.VPANDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 219u + Opcode = Opcode.VPANDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 219u + Opcode = Opcode.VPANDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 220(0xDC) + { OpcodeByte = 220u + Opcode = Opcode.VPADDUSB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 220u + Opcode = Opcode.VPADDUSB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 220u + Opcode = Opcode.VPADDUSB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 221(0xDD) + { OpcodeByte = 221u + Opcode = Opcode.VPADDUSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 221u + Opcode = Opcode.VPADDUSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 221u + Opcode = Opcode.VPADDUSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 222(0xDE) + { OpcodeByte = 222u + Opcode = Opcode.VPMAXUB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 222u + Opcode = Opcode.VPMAXUB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 222u + Opcode = Opcode.VPMAXUB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 223(0xDF) + { OpcodeByte = 223u + Opcode = Opcode.VPANDND + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 223u + Opcode = Opcode.VPANDND + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 223u + Opcode = Opcode.VPANDND + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 223u + Opcode = Opcode.VPANDNQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 223u + Opcode = Opcode.VPANDNQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 223u + Opcode = Opcode.VPANDNQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 224(0xE0) + { OpcodeByte = 224u + Opcode = Opcode.VPAVGB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 224u + Opcode = Opcode.VPAVGB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 224u + Opcode = Opcode.VPAVGB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 225(0xE1) + { OpcodeByte = 225u + Opcode = Opcode.VPSRAW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.G + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Mem128 } + { OpcodeByte = 225u + Opcode = Opcode.VPSRAW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 128 |] + OpEn = OpEn.G + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Mem128 } + { OpcodeByte = 225u + Opcode = Opcode.VPSRAW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 128 |] + OpEn = OpEn.G + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Mem128 } + |] + [| // index 226(0xE2) + { OpcodeByte = 226u + Opcode = Opcode.VPSRAD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.G + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Mem128 } + { OpcodeByte = 226u + Opcode = Opcode.VPSRAD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 128 |] + OpEn = OpEn.G + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Mem128 } + { OpcodeByte = 226u + Opcode = Opcode.VPSRAD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 128 |] + OpEn = OpEn.G + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Mem128 } + { OpcodeByte = 226u + Opcode = Opcode.VPSRAQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.G + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Mem128 } + { OpcodeByte = 226u + Opcode = Opcode.VPSRAQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 128 |] + OpEn = OpEn.G + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Mem128 } + { OpcodeByte = 226u + Opcode = Opcode.VPSRAQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 128 |] + OpEn = OpEn.G + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Mem128 } + |] + [| // index 227(0xE3) + { OpcodeByte = 227u + Opcode = Opcode.VPAVGW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 227u + Opcode = Opcode.VPAVGW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 227u + Opcode = Opcode.VPAVGW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 228(0xE4) + { OpcodeByte = 228u + Opcode = Opcode.VPMULHUW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 228u + Opcode = Opcode.VPMULHUW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 228u + Opcode = Opcode.VPMULHUW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 229(0xE5) + { OpcodeByte = 229u + Opcode = Opcode.VPMULHW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 229u + Opcode = Opcode.VPMULHW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 229u + Opcode = Opcode.VPMULHW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 230(0xE6) + { OpcodeByte = 230u + Opcode = Opcode.VCVTDQ2PD + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMBcst(128, 64, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Half } + { OpcodeByte = 230u + Opcode = Opcode.VCVTDQ2PD + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMBcst(128, 128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Half } + { OpcodeByte = 230u + Opcode = Opcode.VCVTDQ2PD + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RMBcst(256, 256, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Half } + { OpcodeByte = 230u + Opcode = Opcode.VCVTPD2DQ + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMBcst(128, 128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 230u + Opcode = Opcode.VCVTPD2DQ + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMBcst(256, 256, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 230u + Opcode = Opcode.VCVTPD2DQ + PrefixType = Mandatory F2 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + RMBcstEr(512, 512, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 230u + Opcode = Opcode.VCVTTPD2DQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMBcst(128, 128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 230u + Opcode = Opcode.VCVTTPD2DQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMBcst(256, 256, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 230u + Opcode = Opcode.VCVTTPD2DQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + RMBcstSae(512, 512, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 230u + Opcode = Opcode.VCVTQQ2PD + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMBcst(128, 128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 230u + Opcode = Opcode.VCVTQQ2PD + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMBcst(256, 256, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 230u + Opcode = Opcode.VCVTQQ2PD + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + RMBcstEr(512, 512, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 231(0xE7) + { OpcodeByte = 231u + Opcode = Opcode.VMOVNTDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 128; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 231u + Opcode = Opcode.VMOVNTDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 256; Reg(256, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 231u + Opcode = Opcode.VMOVNTDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 512; Reg(512, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 232(0xE8) + { OpcodeByte = 232u + Opcode = Opcode.VPSUBSB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 232u + Opcode = Opcode.VPSUBSB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 232u + Opcode = Opcode.VPSUBSB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 233(0xE9) + { OpcodeByte = 233u + Opcode = Opcode.VPSUBSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 233u + Opcode = Opcode.VPSUBSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 233u + Opcode = Opcode.VPSUBSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 234(0xEA) + { OpcodeByte = 234u + Opcode = Opcode.VPMINSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 234u + Opcode = Opcode.VPMINSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 234u + Opcode = Opcode.VPMINSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 235(0xEB) + { OpcodeByte = 235u + Opcode = Opcode.VPORD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 235u + Opcode = Opcode.VPORD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 235u + Opcode = Opcode.VPORD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 235u + Opcode = Opcode.VPORQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 235u + Opcode = Opcode.VPORQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 235u + Opcode = Opcode.VPORQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 236(0xEC) + { OpcodeByte = 236u + Opcode = Opcode.VPADDSB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 236u + Opcode = Opcode.VPADDSB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 236u + Opcode = Opcode.VPADDSB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 237(0xED) + { OpcodeByte = 237u + Opcode = Opcode.VPADDSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 237u + Opcode = Opcode.VPADDSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 237u + Opcode = Opcode.VPADDSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 238(0xEE) + { OpcodeByte = 238u + Opcode = Opcode.VPMAXSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 238u + Opcode = Opcode.VPMAXSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 238u + Opcode = Opcode.VPMAXSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 239(0xEF) + { OpcodeByte = 239u + Opcode = Opcode.VPXORD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 239u + Opcode = Opcode.VPXORD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 239u + Opcode = Opcode.VPXORD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 239u + Opcode = Opcode.VPXORQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 239u + Opcode = Opcode.VPXORQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 239u + Opcode = Opcode.VPXORQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 240(0xF0) + |] + [| // index 241(0xF1) + { OpcodeByte = 241u + Opcode = Opcode.VPSLLW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.G + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Mem128 } + { OpcodeByte = 241u + Opcode = Opcode.VPSLLW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 128 |] + OpEn = OpEn.G + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Mem128 } + { OpcodeByte = 241u + Opcode = Opcode.VPSLLW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 128 |] + OpEn = OpEn.G + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Mem128 } + |] + [| // index 242(0xF2) + { OpcodeByte = 242u + Opcode = Opcode.VPSLLD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.G + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Mem128 } + { OpcodeByte = 242u + Opcode = Opcode.VPSLLD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 128 |] + OpEn = OpEn.G + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Mem128 } + { OpcodeByte = 242u + Opcode = Opcode.VPSLLD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 128 |] + OpEn = OpEn.G + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Mem128 } + |] + [| // index 243(0xF3) + { OpcodeByte = 243u + Opcode = Opcode.VPSLLQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.G + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Mem128 } + { OpcodeByte = 243u + Opcode = Opcode.VPSLLQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 128 |] + OpEn = OpEn.G + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Mem128 } + { OpcodeByte = 243u + Opcode = Opcode.VPSLLQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 128 |] + OpEn = OpEn.G + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Mem128 } + |] + [| // index 244(0xF4) + { OpcodeByte = 244u + Opcode = Opcode.VPMULUDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 244u + Opcode = Opcode.VPMULUDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 244u + Opcode = Opcode.VPMULUDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 245(0xF5) + { OpcodeByte = 245u + Opcode = Opcode.VPMADDWD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 245u + Opcode = Opcode.VPMADDWD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 245u + Opcode = Opcode.VPMADDWD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 246(0xF6) + { OpcodeByte = 246u + Opcode = Opcode.VPSADBW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 246u + Opcode = Opcode.VPSADBW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 246u + Opcode = Opcode.VPSADBW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 247(0xF7) + |] + [| // index 248(0xF8) + { OpcodeByte = 248u + Opcode = Opcode.VPSUBB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 248u + Opcode = Opcode.VPSUBB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 248u + Opcode = Opcode.VPSUBB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 249(0xF9) + { OpcodeByte = 249u + Opcode = Opcode.VPSUBW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 249u + Opcode = Opcode.VPSUBW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 249u + Opcode = Opcode.VPSUBW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 250(0xFA) + { OpcodeByte = 250u + Opcode = Opcode.VPSUBD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 250u + Opcode = Opcode.VPSUBD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 250u + Opcode = Opcode.VPSUBD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 251(0xFB) + { OpcodeByte = 251u + Opcode = Opcode.VPSUBQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 251u + Opcode = Opcode.VPSUBQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 251u + Opcode = Opcode.VPSUBQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 252(0xFC) + { OpcodeByte = 252u + Opcode = Opcode.VPADDB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 252u + Opcode = Opcode.VPADDB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 252u + Opcode = Opcode.VPADDB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 253(0xFD) + { OpcodeByte = 253u + Opcode = Opcode.VPADDW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 253u + Opcode = Opcode.VPADDW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 253u + Opcode = Opcode.VPADDW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 254(0xFE) + { OpcodeByte = 254u + Opcode = Opcode.VPADDD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 254u + Opcode = Opcode.VPADDD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 254u + Opcode = Opcode.VPADDD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 255(0xFF) + |] + |] + +let (evexThree38: InstructionCore[][]) = + [| + [| // index 0(0x00) + { OpcodeByte = 0u + Opcode = Opcode.VPSHUFB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 0u + Opcode = Opcode.VPSHUFB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 0u + Opcode = Opcode.VPSHUFB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 1(0x01) + |] + [| // index 2(0x02) + |] + [| // index 3(0x03) + |] + [| // index 4(0x04) + { OpcodeByte = 4u + Opcode = Opcode.VPMADDUBSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 4u + Opcode = Opcode.VPMADDUBSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 4u + Opcode = Opcode.VPMADDUBSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 5(0x05) + |] + [| // index 6(0x06) + |] + [| // index 7(0x07) + |] + [| // index 8(0x08) + |] + [| // index 9(0x09) + |] + [| // index 10(0x0A) + |] + [| // index 11(0x0B) + { OpcodeByte = 11u + Opcode = Opcode.VPMULHRSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 11u + Opcode = Opcode.VPMULHRSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 11u + Opcode = Opcode.VPMULHRSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 12(0x0C) + { OpcodeByte = 12u + Opcode = Opcode.VPERMILPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 12u + Opcode = Opcode.VPERMILPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 12u + Opcode = Opcode.VPERMILPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 13(0x0D) + { OpcodeByte = 13u + Opcode = Opcode.VPERMILPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 13u + Opcode = Opcode.VPERMILPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 13u + Opcode = Opcode.VPERMILPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 14(0x0E) + |] + [| // index 15(0x0F) + |] + [| // index 16(0x10) + { OpcodeByte = 16u + Opcode = Opcode.VPMOVUSWB + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RMdiff(128, 64); Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.HalfMem } + { OpcodeByte = 16u + Opcode = Opcode.VPMOVUSWB + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(256, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.HalfMem } + { OpcodeByte = 16u + Opcode = Opcode.VPMOVUSWB + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 256; Reg(512, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.HalfMem } + { OpcodeByte = 16u + Opcode = Opcode.VPSRLVW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 16u + Opcode = Opcode.VPSRLVW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 16u + Opcode = Opcode.VPSRLVW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 17(0x11) + { OpcodeByte = 17u + Opcode = Opcode.VPMOVUSDB + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RMdiff(128, 32); Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.QuarterMem } + { OpcodeByte = 17u + Opcode = Opcode.VPMOVUSDB + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RMdiff(128, 64); Reg(256, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.QuarterMem } + { OpcodeByte = 17u + Opcode = Opcode.VPMOVUSDB + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(512, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.QuarterMem } + { OpcodeByte = 17u + Opcode = Opcode.VPSRAVW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 17u + Opcode = Opcode.VPSRAVW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 17u + Opcode = Opcode.VPSRAVW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 18(0x12) + { OpcodeByte = 18u + Opcode = Opcode.VPMOVUSQB + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RMdiff(128, 16); Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.EighthMem } + { OpcodeByte = 18u + Opcode = Opcode.VPMOVUSQB + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RMdiff(128, 32); Reg(256, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.EighthMem } + { OpcodeByte = 18u + Opcode = Opcode.VPMOVUSQB + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RMdiff(128, 64); Reg(512, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.EighthMem } + { OpcodeByte = 18u + Opcode = Opcode.VPSLLVW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 18u + Opcode = Opcode.VPSLLVW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 18u + Opcode = Opcode.VPSLLVW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 19(0x13) + { OpcodeByte = 19u + Opcode = Opcode.VCVTPH2PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.HalfMem } + { OpcodeByte = 19u + Opcode = Opcode.VCVTPH2PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.HalfMem } + { OpcodeByte = 19u + Opcode = Opcode.VCVTPH2PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RMSae(256, 256) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.HalfMem } + { OpcodeByte = 19u + Opcode = Opcode.VPMOVUSDW + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RMdiff(128, 64); Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.HalfMem } + { OpcodeByte = 19u + Opcode = Opcode.VPMOVUSDW + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(256, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.HalfMem } + { OpcodeByte = 19u + Opcode = Opcode.VPMOVUSDW + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 256; Reg(512, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.HalfMem } + |] + [| // index 20(0x14) + { OpcodeByte = 20u + Opcode = Opcode.VPMOVUSQW + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RMdiff(128, 32); Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.QuarterMem } + { OpcodeByte = 20u + Opcode = Opcode.VPMOVUSQW + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RMdiff(128, 64); Reg(256, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.QuarterMem } + { OpcodeByte = 20u + Opcode = Opcode.VPMOVUSQW + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(512, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.QuarterMem } + { OpcodeByte = 20u + Opcode = Opcode.VPRORVD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 20u + Opcode = Opcode.VPRORVQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 20u + Opcode = Opcode.VPRORVD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 20u + Opcode = Opcode.VPRORVQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 20u + Opcode = Opcode.VPRORVD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 20u + Opcode = Opcode.VPRORVQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 21(0x15) + { OpcodeByte = 21u + Opcode = Opcode.VPMOVUSQD + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RMdiff(128, 64); Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.HalfMem } + { OpcodeByte = 21u + Opcode = Opcode.VPMOVUSQD + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(256, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.HalfMem } + { OpcodeByte = 21u + Opcode = Opcode.VPMOVUSQD + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 256; Reg(512, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.HalfMem } + { OpcodeByte = 21u + Opcode = Opcode.VPROLVD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 21u + Opcode = Opcode.VPROLVQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 21u + Opcode = Opcode.VPROLVD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 21u + Opcode = Opcode.VPROLVQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 21u + Opcode = Opcode.VPROLVD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 21u + Opcode = Opcode.VPROLVQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 22(0x16) + { OpcodeByte = 22u + Opcode = Opcode.VPERMPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 22u + Opcode = Opcode.VPERMPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 22u + Opcode = Opcode.VPERMPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 22u + Opcode = Opcode.VPERMPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 23(0x17) + |] + [| // index 24(0x18) + { OpcodeByte = 24u + Opcode = Opcode.VBROADCASTSS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 24u + Opcode = Opcode.VBROADCASTSS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMdiff(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 24u + Opcode = Opcode.VBROADCASTSS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RMdiff(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 25(0x19) + { OpcodeByte = 25u + Opcode = Opcode.VBROADCASTSD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 25u + Opcode = Opcode.VBROADCASTSD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 25u + Opcode = Opcode.VBROADCASTF32X2 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple2 } + { OpcodeByte = 25u + Opcode = Opcode.VBROADCASTF32X2 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple2 } + |] + [| // index 26(0x1A) + { OpcodeByte = 26u + Opcode = Opcode.VBROADCASTF32X4 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Mem 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple4 } + { OpcodeByte = 26u + Opcode = Opcode.VBROADCASTF32X4 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Mem 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple4 } + { OpcodeByte = 26u + Opcode = Opcode.VBROADCASTF64X2 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Mem 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple2 } + { OpcodeByte = 26u + Opcode = Opcode.VBROADCASTF64X2 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Mem 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple2 } + |] + [| // index 27(0x1B) + { OpcodeByte = 27u + Opcode = Opcode.VBROADCASTF32X8 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Mem 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple8 } + { OpcodeByte = 27u + Opcode = Opcode.VBROADCASTF64X4 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Mem 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple4 } + |] + [| // index 28(0x1C) + { OpcodeByte = 28u + Opcode = Opcode.VPABSB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 28u + Opcode = Opcode.VPABSB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 28u + Opcode = Opcode.VPABSB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RM 512 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 29(0x1D) + { OpcodeByte = 29u + Opcode = Opcode.VPABSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 29u + Opcode = Opcode.VPABSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 29u + Opcode = Opcode.VPABSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RM 512 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 30(0x1E) + { OpcodeByte = 30u + Opcode = Opcode.VPABSD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMBcst(128, 128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 30u + Opcode = Opcode.VPABSD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMBcst(256, 256, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 30u + Opcode = Opcode.VPABSD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RMBcst(512, 512, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 31(0x1F) + { OpcodeByte = 31u + Opcode = Opcode.VPABSQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMBcst(128, 128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 31u + Opcode = Opcode.VPABSQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMBcst(256, 256, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 31u + Opcode = Opcode.VPABSQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RMBcst(512, 512, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 32(0x20) + { OpcodeByte = 32u + Opcode = Opcode.VPMOVSXBW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.HalfMem } + { OpcodeByte = 32u + Opcode = Opcode.VPMOVSXBW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.HalfMem } + { OpcodeByte = 32u + Opcode = Opcode.VPMOVSXBW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.HalfMem } + { OpcodeByte = 32u + Opcode = Opcode.VPMOVSWB + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RMdiff(128, 64); Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.HalfMem } + { OpcodeByte = 32u + Opcode = Opcode.VPMOVSWB + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(256, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.HalfMem } + { OpcodeByte = 32u + Opcode = Opcode.VPMOVSWB + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 256; Reg(512, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.HalfMem } + |] + [| // index 33(0x21) + { OpcodeByte = 33u + Opcode = Opcode.VPMOVSXBD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.QuarterMem } + { OpcodeByte = 33u + Opcode = Opcode.VPMOVSXBD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.QuarterMem } + { OpcodeByte = 33u + Opcode = Opcode.VPMOVSXBD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.QuarterMem } + { OpcodeByte = 33u + Opcode = Opcode.VPMOVSDB + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RMdiff(128, 32); Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.QuarterMem } + { OpcodeByte = 33u + Opcode = Opcode.VPMOVSDB + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RMdiff(128, 64); Reg(256, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.QuarterMem } + { OpcodeByte = 33u + Opcode = Opcode.VPMOVSDB + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(512, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.QuarterMem } + |] + [| // index 34(0x22) + { OpcodeByte = 34u + Opcode = Opcode.VPMOVSXBQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 16) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.EighthMem } + { OpcodeByte = 34u + Opcode = Opcode.VPMOVSXBQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMdiff(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.EighthMem } + { OpcodeByte = 34u + Opcode = Opcode.VPMOVSXBQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.EighthMem } + { OpcodeByte = 34u + Opcode = Opcode.VPMOVSQB + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RMdiff(128, 16); Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.EighthMem } + { OpcodeByte = 34u + Opcode = Opcode.VPMOVSQB + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RMdiff(128, 32); Reg(256, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.EighthMem } + { OpcodeByte = 34u + Opcode = Opcode.VPMOVSQB + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RMdiff(128, 64); Reg(512, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.EighthMem } + |] + [| // index 35(0x23) + { OpcodeByte = 35u + Opcode = Opcode.VPMOVSXWD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.HalfMem } + { OpcodeByte = 35u + Opcode = Opcode.VPMOVSXWD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.HalfMem } + { OpcodeByte = 35u + Opcode = Opcode.VPMOVSXWD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.HalfMem } + { OpcodeByte = 35u + Opcode = Opcode.VPMOVSDW + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RMdiff(128, 64); Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.HalfMem } + { OpcodeByte = 35u + Opcode = Opcode.VPMOVSDW + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(256, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.HalfMem } + { OpcodeByte = 35u + Opcode = Opcode.VPMOVSDW + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 256; Reg(512, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.HalfMem } + |] + [| // index 36(0x24) + { OpcodeByte = 36u + Opcode = Opcode.VPMOVSXWQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.QuarterMem } + { OpcodeByte = 36u + Opcode = Opcode.VPMOVSXWQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.QuarterMem } + { OpcodeByte = 36u + Opcode = Opcode.VPMOVSXWQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.QuarterMem } + { OpcodeByte = 36u + Opcode = Opcode.VPMOVSQW + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RMdiff(128, 32); Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.QuarterMem } + { OpcodeByte = 36u + Opcode = Opcode.VPMOVSQW + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RMdiff(128, 64); Reg(256, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.QuarterMem } + { OpcodeByte = 36u + Opcode = Opcode.VPMOVSQW + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(512, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.QuarterMem } + |] + [| // index 37(0x25) + { OpcodeByte = 37u + Opcode = Opcode.VPMOVSXDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.HalfMem } + { OpcodeByte = 37u + Opcode = Opcode.VPMOVSXDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.HalfMem } + { OpcodeByte = 37u + Opcode = Opcode.VPMOVSXDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.HalfMem } + { OpcodeByte = 37u + Opcode = Opcode.VPMOVSQD + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RMdiff(128, 64); Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.HalfMem } + { OpcodeByte = 37u + Opcode = Opcode.VPMOVSQD + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(256, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.HalfMem } + { OpcodeByte = 37u + Opcode = Opcode.VPMOVSQD + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 256; Reg(512, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.HalfMem } + |] + [| // index 38(0x26) + { OpcodeByte = 38u + Opcode = Opcode.VPTESTMB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 38u + Opcode = Opcode.VPTESTMB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 38u + Opcode = Opcode.VPTESTMB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 38u + Opcode = Opcode.VPTESTMW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 38u + Opcode = Opcode.VPTESTMW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 38u + Opcode = Opcode.VPTESTMW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 38u + Opcode = Opcode.VPTESTNMB + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 38u + Opcode = Opcode.VPTESTNMB + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 38u + Opcode = Opcode.VPTESTNMB + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 38u + Opcode = Opcode.VPTESTNMW + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 38u + Opcode = Opcode.VPTESTNMW + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 38u + Opcode = Opcode.VPTESTNMW + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 39(0x27) + { OpcodeByte = 39u + Opcode = Opcode.VPTESTMD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 39u + Opcode = Opcode.VPTESTMD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 39u + Opcode = Opcode.VPTESTMD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 39u + Opcode = Opcode.VPTESTMQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 39u + Opcode = Opcode.VPTESTMQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 39u + Opcode = Opcode.VPTESTMQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 39u + Opcode = Opcode.VPTESTNMD + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 39u + Opcode = Opcode.VPTESTNMD + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 39u + Opcode = Opcode.VPTESTNMD + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 39u + Opcode = Opcode.VPTESTNMQ + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 39u + Opcode = Opcode.VPTESTNMQ + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 39u + Opcode = Opcode.VPTESTNMQ + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 40(0x28) + { OpcodeByte = 40u + Opcode = Opcode.VPMULDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 40u + Opcode = Opcode.VPMULDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 40u + Opcode = Opcode.VPMULDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 40u + Opcode = Opcode.VPMOVM2B + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); OpMaskReg(RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 40u + Opcode = Opcode.VPMOVM2B + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); OpMaskReg(RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 40u + Opcode = Opcode.VPMOVM2B + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); OpMaskReg(RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 40u + Opcode = Opcode.VPMOVM2W + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); OpMaskReg(RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 40u + Opcode = Opcode.VPMOVM2W + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); OpMaskReg(RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 40u + Opcode = Opcode.VPMOVM2W + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); OpMaskReg(RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 41(0x29) + { OpcodeByte = 41u + Opcode = Opcode.VPCMPEQQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 41u + Opcode = Opcode.VPCMPEQQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 41u + Opcode = Opcode.VPCMPEQQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 41u + Opcode = Opcode.VPMOVB2M + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); Reg(128, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 41u + Opcode = Opcode.VPMOVB2M + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); Reg(256, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 41u + Opcode = Opcode.VPMOVB2M + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); Reg(512, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 41u + Opcode = Opcode.VPMOVW2M + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); Reg(128, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 41u + Opcode = Opcode.VPMOVW2M + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); Reg(256, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 41u + Opcode = Opcode.VPMOVW2M + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); Reg(512, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 42(0x2A) + { OpcodeByte = 42u + Opcode = Opcode.VMOVNTDQA + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Mem 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 42u + Opcode = Opcode.VMOVNTDQA + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Mem 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 42u + Opcode = Opcode.VMOVNTDQA + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Mem 512 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 42u + Opcode = Opcode.VPBROADCASTMB2Q + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); OpMaskReg(RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 42u + Opcode = Opcode.VPBROADCASTMB2Q + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); OpMaskReg(RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 42u + Opcode = Opcode.VPBROADCASTMB2Q + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); OpMaskReg(RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 43(0x2B) + { OpcodeByte = 43u + Opcode = Opcode.VPACKUSDW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 43u + Opcode = Opcode.VPACKUSDW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 43u + Opcode = Opcode.VPACKUSDW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 44(0x2C) + { OpcodeByte = 44u + Opcode = Opcode.VSCALEFPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 44u + Opcode = Opcode.VSCALEFPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 44u + Opcode = Opcode.VSCALEFPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstEr(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 44u + Opcode = Opcode.VSCALEFPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 44u + Opcode = Opcode.VSCALEFPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 44u + Opcode = Opcode.VSCALEFPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstEr(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 45(0x2D) + { OpcodeByte = 45u + Opcode = Opcode.VSCALEFSD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMEr(128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 45u + Opcode = Opcode.VSCALEFSS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMEr(128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 46(0x2E) + |] + [| // index 47(0x2F) + |] + [| // index 48(0x30) + { OpcodeByte = 48u + Opcode = Opcode.VPMOVZXBW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.HalfMem } + { OpcodeByte = 48u + Opcode = Opcode.VPMOVZXBW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.HalfMem } + { OpcodeByte = 48u + Opcode = Opcode.VPMOVZXBW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.HalfMem } + { OpcodeByte = 48u + Opcode = Opcode.VPMOVWB + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RMdiff(128, 64); Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.HalfMem } + { OpcodeByte = 48u + Opcode = Opcode.VPMOVWB + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(256, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.HalfMem } + { OpcodeByte = 48u + Opcode = Opcode.VPMOVWB + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 256; Reg(512, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.HalfMem } + |] + [| // index 49(0x31) + { OpcodeByte = 49u + Opcode = Opcode.VPMOVZXBD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.QuarterMem } + { OpcodeByte = 49u + Opcode = Opcode.VPMOVZXBD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.QuarterMem } + { OpcodeByte = 49u + Opcode = Opcode.VPMOVZXBD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.QuarterMem } + { OpcodeByte = 49u + Opcode = Opcode.VPMOVDB + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RMdiff(128, 32); Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.QuarterMem } + { OpcodeByte = 49u + Opcode = Opcode.VPMOVDB + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RMdiff(128, 64); Reg(256, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.QuarterMem } + { OpcodeByte = 49u + Opcode = Opcode.VPMOVDB + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(512, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.QuarterMem } + |] + [| // index 50(0x32) + { OpcodeByte = 50u + Opcode = Opcode.VPMOVZXBQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 16) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.EighthMem } + { OpcodeByte = 50u + Opcode = Opcode.VPMOVZXBQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMdiff(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.EighthMem } + { OpcodeByte = 50u + Opcode = Opcode.VPMOVZXBQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.EighthMem } + { OpcodeByte = 50u + Opcode = Opcode.VPMOVQB + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RMdiff(128, 16); Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.EighthMem } + { OpcodeByte = 50u + Opcode = Opcode.VPMOVQB + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RMdiff(128, 32); Reg(256, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.EighthMem } + { OpcodeByte = 50u + Opcode = Opcode.VPMOVQB + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RMdiff(128, 64); Reg(512, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.EighthMem } + |] + [| // index 51(0x33) + { OpcodeByte = 51u + Opcode = Opcode.VPMOVZXWD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.HalfMem } + { OpcodeByte = 51u + Opcode = Opcode.VPMOVZXWD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.HalfMem } + { OpcodeByte = 51u + Opcode = Opcode.VPMOVZXWD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.HalfMem } + { OpcodeByte = 51u + Opcode = Opcode.VPMOVDW + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RMdiff(128, 64); Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.HalfMem } + { OpcodeByte = 51u + Opcode = Opcode.VPMOVDW + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(256, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.HalfMem } + { OpcodeByte = 51u + Opcode = Opcode.VPMOVDW + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 256; Reg(512, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.HalfMem } + |] + [| // index 52(0x34) + { OpcodeByte = 52u + Opcode = Opcode.VPMOVZXWQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.QuarterMem } + { OpcodeByte = 52u + Opcode = Opcode.VPMOVZXWQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.QuarterMem } + { OpcodeByte = 52u + Opcode = Opcode.VPMOVZXWQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.QuarterMem } + { OpcodeByte = 52u + Opcode = Opcode.VPMOVQW + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RMdiff(128, 32); Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.QuarterMem } + { OpcodeByte = 52u + Opcode = Opcode.VPMOVQW + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RMdiff(128, 64); Reg(256, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.QuarterMem } + { OpcodeByte = 52u + Opcode = Opcode.VPMOVQW + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(512, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.QuarterMem } + |] + [| // index 53(0x35) + { OpcodeByte = 53u + Opcode = Opcode.VPMOVZXDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.HalfMem } + { OpcodeByte = 53u + Opcode = Opcode.VPMOVZXDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.HalfMem } + { OpcodeByte = 53u + Opcode = Opcode.VPMOVZXDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.HalfMem } + { OpcodeByte = 53u + Opcode = Opcode.VPMOVQD + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.HalfMem } + { OpcodeByte = 53u + Opcode = Opcode.VPMOVQD + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(256, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.HalfMem } + { OpcodeByte = 53u + Opcode = Opcode.VPMOVQD + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 256; Reg(512, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.HalfMem } + |] + [| // index 54(0x36) + { OpcodeByte = 54u + Opcode = Opcode.VPERMD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 54u + Opcode = Opcode.VPERMD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 54u + Opcode = Opcode.VPERMQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 54u + Opcode = Opcode.VPERMQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 55(0x37) + { OpcodeByte = 55u + Opcode = Opcode.VPCMPGTQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 55u + Opcode = Opcode.VPCMPGTQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 55u + Opcode = Opcode.VPCMPGTQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 56(0x38) + { OpcodeByte = 56u + Opcode = Opcode.VPMINSB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 56u + Opcode = Opcode.VPMINSB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 56u + Opcode = Opcode.VPMINSB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 56u + Opcode = Opcode.VPMOVM2D + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); OpMaskReg(RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 56u + Opcode = Opcode.VPMOVM2D + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); OpMaskReg(RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 56u + Opcode = Opcode.VPMOVM2D + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); OpMaskReg(RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 56u + Opcode = Opcode.VPMOVM2Q + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); OpMaskReg(RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 56u + Opcode = Opcode.VPMOVM2Q + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); OpMaskReg(RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 56u + Opcode = Opcode.VPMOVM2Q + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); OpMaskReg(RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 57(0x39) + { OpcodeByte = 57u + Opcode = Opcode.VPMINSD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 57u + Opcode = Opcode.VPMINSD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 57u + Opcode = Opcode.VPMINSD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 57u + Opcode = Opcode.VPMINSQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 57u + Opcode = Opcode.VPMINSQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 57u + Opcode = Opcode.VPMINSQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 57u + Opcode = Opcode.VPMOVD2M + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); Reg(128, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 57u + Opcode = Opcode.VPMOVD2M + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); Reg(256, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 57u + Opcode = Opcode.VPMOVD2M + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); Reg(512, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 57u + Opcode = Opcode.VPMOVQ2M + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); Reg(128, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 57u + Opcode = Opcode.VPMOVQ2M + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); Reg(256, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 57u + Opcode = Opcode.VPMOVQ2M + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); Reg(512, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 58(0x3A) + { OpcodeByte = 58u + Opcode = Opcode.VPMINUW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 58u + Opcode = Opcode.VPMINUW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 58u + Opcode = Opcode.VPMINUW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.NOREX + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 58u + Opcode = Opcode.VPBROADCASTMW2D + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); OpMaskReg(RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 58u + Opcode = Opcode.VPBROADCASTMW2D + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); OpMaskReg(RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 58u + Opcode = Opcode.VPBROADCASTMW2D + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); OpMaskReg(RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 59(0x3B) + { OpcodeByte = 59u + Opcode = Opcode.VPMINUD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 59u + Opcode = Opcode.VPMINUD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 59u + Opcode = Opcode.VPMINUD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 59u + Opcode = Opcode.VPMINUQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 59u + Opcode = Opcode.VPMINUQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 59u + Opcode = Opcode.VPMINUQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 60(0x3C) + { OpcodeByte = 60u + Opcode = Opcode.VPMAXSB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 60u + Opcode = Opcode.VPMAXSB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 60u + Opcode = Opcode.VPMAXSB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 61(0x3D) + { OpcodeByte = 61u + Opcode = Opcode.VPMAXSD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 61u + Opcode = Opcode.VPMAXSD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 61u + Opcode = Opcode.VPMAXSD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 61u + Opcode = Opcode.VPMAXSQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 61u + Opcode = Opcode.VPMAXSQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 61u + Opcode = Opcode.VPMAXSQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 62(0x3E) + { OpcodeByte = 62u + Opcode = Opcode.VPMAXUW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 62u + Opcode = Opcode.VPMAXUW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 62u + Opcode = Opcode.VPMAXUW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 63(0x3F) + { OpcodeByte = 63u + Opcode = Opcode.VPMAXUD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 63u + Opcode = Opcode.VPMAXUD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 63u + Opcode = Opcode.VPMAXUD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 63u + Opcode = Opcode.VPMAXUQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 63u + Opcode = Opcode.VPMAXUQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 63u + Opcode = Opcode.VPMAXUQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 64(0x40) + { OpcodeByte = 64u + Opcode = Opcode.VPMULLD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 64u + Opcode = Opcode.VPMULLD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 64u + Opcode = Opcode.VPMULLD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 64u + Opcode = Opcode.VPMULLQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 64u + Opcode = Opcode.VPMULLQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 64u + Opcode = Opcode.VPMULLQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 65(0x41) + |] + [| // index 66(0x42) + { OpcodeByte = 66u + Opcode = Opcode.VGETEXPPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMBcst(128, 128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 66u + Opcode = Opcode.VGETEXPPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMBcst(256, 256, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 66u + Opcode = Opcode.VGETEXPPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + RMBcstSae(512, 512, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 66u + Opcode = Opcode.VGETEXPPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMBcst(128, 128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 66u + Opcode = Opcode.VGETEXPPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMBcst(256, 256, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 66u + Opcode = Opcode.VGETEXPPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + RMBcstSae(512, 512, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 67(0x43) + { OpcodeByte = 67u + Opcode = Opcode.VGETEXPSD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMSae(128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 67u + Opcode = Opcode.VGETEXPSS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMSae(128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 68(0x44) + { OpcodeByte = 68u + Opcode = Opcode.VPLZCNTD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMBcst(128, 128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 68u + Opcode = Opcode.VPLZCNTD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMBcst(256, 256, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 68u + Opcode = Opcode.VPLZCNTD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RMBcst(512, 512, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 68u + Opcode = Opcode.VPLZCNTQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMBcst(128, 128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 68u + Opcode = Opcode.VPLZCNTQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMBcst(256, 256, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 68u + Opcode = Opcode.VPLZCNTQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RMBcst(512, 512, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 69(0x45) + { OpcodeByte = 69u + Opcode = Opcode.VPSRLVD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 69u + Opcode = Opcode.VPSRLVD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 69u + Opcode = Opcode.VPSRLVD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 69u + Opcode = Opcode.VPSRLVQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 69u + Opcode = Opcode.VPSRLVQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 69u + Opcode = Opcode.VPSRLVQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 70(0x46) + { OpcodeByte = 70u + Opcode = Opcode.VPSRAVD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 70u + Opcode = Opcode.VPSRAVD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 70u + Opcode = Opcode.VPSRAVD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 70u + Opcode = Opcode.VPSRAVQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 70u + Opcode = Opcode.VPSRAVQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 70u + Opcode = Opcode.VPSRAVQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 71(0x47) + { OpcodeByte = 71u + Opcode = Opcode.VPSLLVD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 71u + Opcode = Opcode.VPSLLVD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 71u + Opcode = Opcode.VPSLLVD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 71u + Opcode = Opcode.VPSLLVQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 71u + Opcode = Opcode.VPSLLVQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 71u + Opcode = Opcode.VPSLLVQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 72(0x48) + |] + [| // index 73(0x49) + |] + [| // index 74(0x4A) + |] + [| // index 75(0x4B) + |] + [| // index 76(0x4C) + { OpcodeByte = 76u + Opcode = Opcode.VRCP14PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMBcst(128, 128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 76u + Opcode = Opcode.VRCP14PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMBcst(256, 256, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 76u + Opcode = Opcode.VRCP14PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RMBcst(512, 512, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 76u + Opcode = Opcode.VRCP14PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMBcst(128, 128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 76u + Opcode = Opcode.VRCP14PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMBcst(256, 256, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 76u + Opcode = Opcode.VRCP14PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RMBcst(512, 512, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 77(0x4D) + { OpcodeByte = 77u + Opcode = Opcode.VRCP14SD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 77u + Opcode = Opcode.VRCP14SS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 78(0x4E) + { OpcodeByte = 78u + Opcode = Opcode.VRSQRT14PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMBcst(128, 128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 78u + Opcode = Opcode.VRSQRT14PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMBcst(256, 256, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 78u + Opcode = Opcode.VRSQRT14PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RMBcst(512, 512, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 78u + Opcode = Opcode.VRSQRT14PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMBcst(128, 128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 78u + Opcode = Opcode.VRSQRT14PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMBcst(256, 256, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 78u + Opcode = Opcode.VRSQRT14PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RMBcst(512, 512, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 79(0x4F) + { OpcodeByte = 79u + Opcode = Opcode.VRSQRT14SD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 79u + Opcode = Opcode.VRSQRT14SS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 80(0x50) + { OpcodeByte = 80u + Opcode = Opcode.VPDPBUSD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 80u + Opcode = Opcode.VPDPBUSD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 80u + Opcode = Opcode.VPDPBUSD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 81(0x51) + { OpcodeByte = 81u + Opcode = Opcode.VPDPBUSDS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 81u + Opcode = Opcode.VPDPBUSDS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 81u + Opcode = Opcode.VPDPBUSDS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 82(0x52) + { OpcodeByte = 82u + Opcode = Opcode.VDPBF16PS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 82u + Opcode = Opcode.VDPBF16PS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 82u + Opcode = Opcode.VDPBF16PS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 82u + Opcode = Opcode.VPDPWSSD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 82u + Opcode = Opcode.VPDPWSSD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 82u + Opcode = Opcode.VPDPWSSD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 82u + Opcode = Opcode.VP4DPWSSD + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); Mem 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1_4X } + |] + [| // index 83(0x53) + { OpcodeByte = 83u + Opcode = Opcode.VPDPWSSDS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 83u + Opcode = Opcode.VPDPWSSDS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 83u + Opcode = Opcode.VPDPWSSDS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 83u + Opcode = Opcode.VP4DPWSSDS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); Mem 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1_4X } + |] + [| // index 84(0x54) + { OpcodeByte = 84u + Opcode = Opcode.VPOPCNTB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 84u + Opcode = Opcode.VPOPCNTB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 84u + Opcode = Opcode.VPOPCNTB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RM 512 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 84u + Opcode = Opcode.VPOPCNTW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 84u + Opcode = Opcode.VPOPCNTW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 84u + Opcode = Opcode.VPOPCNTW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RM 512 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 85(0x55) + { OpcodeByte = 85u + Opcode = Opcode.VPOPCNTD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMBcst(128, 128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 85u + Opcode = Opcode.VPOPCNTD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMBcst(256, 256, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 85u + Opcode = Opcode.VPOPCNTD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RMBcst(512, 512, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 85u + Opcode = Opcode.VPOPCNTQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMBcst(128, 128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 85u + Opcode = Opcode.VPOPCNTQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMBcst(256, 256, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 85u + Opcode = Opcode.VPOPCNTQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RMBcst(512, 512, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 86(0x56) + |] + [| // index 87(0x57) + |] + [| // index 88(0x58) + { OpcodeByte = 88u + Opcode = Opcode.VPBROADCASTD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 88u + Opcode = Opcode.VPBROADCASTD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMdiff(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 88u + Opcode = Opcode.VPBROADCASTD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RMdiff(128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 89(0x59) + { OpcodeByte = 89u + Opcode = Opcode.VPBROADCASTQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 89u + Opcode = Opcode.VPBROADCASTQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 89u + Opcode = Opcode.VPBROADCASTQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 89u + Opcode = Opcode.VBROADCASTI32X2 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple2 } + { OpcodeByte = 89u + Opcode = Opcode.VBROADCASTI32X2 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple2 } + { OpcodeByte = 89u + Opcode = Opcode.VBROADCASTI32X2 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RMdiff(128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple2 } + |] + [| // index 90(0x5A) + { OpcodeByte = 90u + Opcode = Opcode.VBROADCASTI32X4 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Mem 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple4 } + { OpcodeByte = 90u + Opcode = Opcode.VBROADCASTI32X4 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Mem 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple4 } + { OpcodeByte = 90u + Opcode = Opcode.VBROADCASTI64X2 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Mem 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple2 } + { OpcodeByte = 90u + Opcode = Opcode.VBROADCASTI64X2 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Mem 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple2 } + |] + [| // index 91(0x5B) + { OpcodeByte = 91u + Opcode = Opcode.VBROADCASTI32X8 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Mem 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple8 } + { OpcodeByte = 91u + Opcode = Opcode.VBROADCASTI64X4 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Mem 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple4 } + |] + [| // index 92(0x5C) + |] + [| // index 93(0x5D) + |] + [| // index 94(0x5E) + |] + [| // index 95(0x5F) + |] + [| // index 96(0x60) + |] + [| // index 97(0x61) + |] + [| // index 98(0x62) + { OpcodeByte = 98u + Opcode = Opcode.VPEXPANDB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Mem 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 98u + Opcode = Opcode.VPEXPANDB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 98u + Opcode = Opcode.VPEXPANDB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Mem 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 98u + Opcode = Opcode.VPEXPANDB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 98u + Opcode = Opcode.VPEXPANDB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Mem 512 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 98u + Opcode = Opcode.VPEXPANDB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 98u + Opcode = Opcode.VPEXPANDW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Mem 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 98u + Opcode = Opcode.VPEXPANDW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 98u + Opcode = Opcode.VPEXPANDW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Mem 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 98u + Opcode = Opcode.VPEXPANDW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 98u + Opcode = Opcode.VPEXPANDW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Mem 512 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 98u + Opcode = Opcode.VPEXPANDW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 99(0x63) + { OpcodeByte = 99u + Opcode = Opcode.VPCOMPRESSB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 128; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 99u + Opcode = Opcode.VPCOMPRESSB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RMBit); Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 99u + Opcode = Opcode.VPCOMPRESSB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 256; Reg(256, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 99u + Opcode = Opcode.VPCOMPRESSB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RMBit); Reg(256, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 99u + Opcode = Opcode.VPCOMPRESSB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 512; Reg(512, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 99u + Opcode = Opcode.VPCOMPRESSB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RMBit); Reg(512, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 99u + Opcode = Opcode.VPCOMPRESSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 128; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 99u + Opcode = Opcode.VPCOMPRESSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RMBit); Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 99u + Opcode = Opcode.VPCOMPRESSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 256; Reg(256, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 99u + Opcode = Opcode.VPCOMPRESSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RMBit); Reg(256, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + { OpcodeByte = 99u + Opcode = Opcode.VPCOMPRESSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Mem 512; Reg(512, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 99u + Opcode = Opcode.VPCOMPRESSW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RMBit); Reg(512, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.NA } + |] + [| // index 100(0x64) + { OpcodeByte = 100u + Opcode = Opcode.VPBLENDMD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 100u + Opcode = Opcode.VPBLENDMD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 100u + Opcode = Opcode.VPBLENDMD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 100u + Opcode = Opcode.VPBLENDMQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 100u + Opcode = Opcode.VPBLENDMQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 100u + Opcode = Opcode.VPBLENDMQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 101(0x65) + { OpcodeByte = 101u + Opcode = Opcode.VBLENDMPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 101u + Opcode = Opcode.VBLENDMPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 101u + Opcode = Opcode.VBLENDMPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 101u + Opcode = Opcode.VBLENDMPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 101u + Opcode = Opcode.VBLENDMPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 101u + Opcode = Opcode.VBLENDMPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 102(0x66) + { OpcodeByte = 102u + Opcode = Opcode.VPBLENDMB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 102u + Opcode = Opcode.VPBLENDMB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 102u + Opcode = Opcode.VPBLENDMB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 102u + Opcode = Opcode.VPBLENDMW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 102u + Opcode = Opcode.VPBLENDMW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 102u + Opcode = Opcode.VPBLENDMW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 103(0x67) + |] + [| // index 104(0x68) + { OpcodeByte = 104u + Opcode = Opcode.VP2INTERSECTD + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 104u + Opcode = Opcode.VP2INTERSECTD + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 104u + Opcode = Opcode.VP2INTERSECTD + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 104u + Opcode = Opcode.VP2INTERSECTQ + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 104u + Opcode = Opcode.VP2INTERSECTQ + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 104u + Opcode = Opcode.VP2INTERSECTQ + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 105(0x69) + |] + [| // index 106(0x6A) + |] + [| // index 107(0x6B) + |] + [| // index 108(0x6C) + |] + [| // index 109(0x6D) + |] + [| // index 110(0x6E) + |] + [| // index 111(0x6F) + |] + [| // index 112(0x70) + { OpcodeByte = 112u + Opcode = Opcode.VPSHLDVW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 112u + Opcode = Opcode.VPSHLDVW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 112u + Opcode = Opcode.VPSHLDVW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 113(0x71) + { OpcodeByte = 113u + Opcode = Opcode.VPSHLDVD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 113u + Opcode = Opcode.VPSHLDVD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 113u + Opcode = Opcode.VPSHLDVD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 113u + Opcode = Opcode.VPSHLDVQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 113u + Opcode = Opcode.VPSHLDVQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 113u + Opcode = Opcode.VPSHLDVQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 114(0x72) + { OpcodeByte = 114u + Opcode = Opcode.VCVTNE2PS2BF16 + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 114u + Opcode = Opcode.VCVTNE2PS2BF16 + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 114u + Opcode = Opcode.VCVTNE2PS2BF16 + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 114u + Opcode = Opcode.VCVTNEPS2BF16 + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMBcst(128, 128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 114u + Opcode = Opcode.VCVTNEPS2BF16 + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMBcst(256, 256, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 114u + Opcode = Opcode.VCVTNEPS2BF16 + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMBcst(512, 512, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 114u + Opcode = Opcode.VPSHRDVW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 114u + Opcode = Opcode.VPSHRDVW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 114u + Opcode = Opcode.VPSHRDVW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 115(0x73) + { OpcodeByte = 115u + Opcode = Opcode.VPSHRDVD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 115u + Opcode = Opcode.VPSHRDVD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 115u + Opcode = Opcode.VPSHRDVD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 115u + Opcode = Opcode.VPSHRDVQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 115u + Opcode = Opcode.VPSHRDVQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 115u + Opcode = Opcode.VPSHRDVQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 116(0x74) + |] + [| // index 117(0x75) + { OpcodeByte = 117u + Opcode = Opcode.VPERMI2B + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 117u + Opcode = Opcode.VPERMI2B + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 117u + Opcode = Opcode.VPERMI2B + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 117u + Opcode = Opcode.VPERMI2W + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 117u + Opcode = Opcode.VPERMI2W + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 117u + Opcode = Opcode.VPERMI2W + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 118(0x76) + { OpcodeByte = 118u + Opcode = Opcode.VPERMI2D + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 118u + Opcode = Opcode.VPERMI2D + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 118u + Opcode = Opcode.VPERMI2D + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 118u + Opcode = Opcode.VPERMI2Q + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 118u + Opcode = Opcode.VPERMI2Q + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 118u + Opcode = Opcode.VPERMI2Q + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 119(0x77) + { OpcodeByte = 119u + Opcode = Opcode.VPERMI2PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 119u + Opcode = Opcode.VPERMI2PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 119u + Opcode = Opcode.VPERMI2PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 119u + Opcode = Opcode.VPERMI2PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 119u + Opcode = Opcode.VPERMI2PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 119u + Opcode = Opcode.VPERMI2PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 120(0x78) + { OpcodeByte = 120u + Opcode = Opcode.VPBROADCASTB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 8) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 120u + Opcode = Opcode.VPBROADCASTB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMdiff(128, 8) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 120u + Opcode = Opcode.VPBROADCASTB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RMdiff(128, 8) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 121(0x79) + { OpcodeByte = 121u + Opcode = Opcode.VPBROADCASTW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMdiff(128, 16) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 121u + Opcode = Opcode.VPBROADCASTW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMdiff(128, 16) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 121u + Opcode = Opcode.VPBROADCASTW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RMdiff(128, 16) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 122(0x7A) + { OpcodeByte = 122u + Opcode = Opcode.VPBROADCASTB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(32, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 122u + Opcode = Opcode.VPBROADCASTB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(32, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 122u + Opcode = Opcode.VPBROADCASTB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(32, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 123(0x7B) + { OpcodeByte = 123u + Opcode = Opcode.VPBROADCASTW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(32, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 123u + Opcode = Opcode.VPBROADCASTW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(32, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 123u + Opcode = Opcode.VPBROADCASTW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(32, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 124(0x7C) + { OpcodeByte = 124u + Opcode = Opcode.VPBROADCASTD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(32, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 124u + Opcode = Opcode.VPBROADCASTD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(32, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 124u + Opcode = Opcode.VPBROADCASTD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(32, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 124u + Opcode = Opcode.VPBROADCASTQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(64, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 124u + Opcode = Opcode.VPBROADCASTQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(64, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 124u + Opcode = Opcode.VPBROADCASTQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(64, RMBit) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.NE + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 125(0x7D) + { OpcodeByte = 125u + Opcode = Opcode.VPERMT2B + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 125u + Opcode = Opcode.VPERMT2B + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 125u + Opcode = Opcode.VPERMT2B + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 125u + Opcode = Opcode.VPERMT2W + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 125u + Opcode = Opcode.VPERMT2W + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 125u + Opcode = Opcode.VPERMT2W + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 126(0x7E) + { OpcodeByte = 126u + Opcode = Opcode.VPERMT2D + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 126u + Opcode = Opcode.VPERMT2D + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 126u + Opcode = Opcode.VPERMT2D + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 126u + Opcode = Opcode.VPERMT2Q + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 126u + Opcode = Opcode.VPERMT2Q + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 126u + Opcode = Opcode.VPERMT2Q + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 127(0x7F) + { OpcodeByte = 127u + Opcode = Opcode.VPERMT2PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 127u + Opcode = Opcode.VPERMT2PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 127u + Opcode = Opcode.VPERMT2PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 127u + Opcode = Opcode.VPERMT2PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 127u + Opcode = Opcode.VPERMT2PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 127u + Opcode = Opcode.VPERMT2PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 128(0x80) + |] + [| // index 129(0x81) + |] + [| // index 130(0x82) + |] + [| // index 131(0x83) + { OpcodeByte = 131u + Opcode = Opcode.VPMULTISHIFTQB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 131u + Opcode = Opcode.VPMULTISHIFTQB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 131u + Opcode = Opcode.VPMULTISHIFTQB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 132(0x84) + |] + [| // index 133(0x85) + |] + [| // index 134(0x86) + |] + [| // index 135(0x87) + |] + [| // index 136(0x88) + { OpcodeByte = 136u + Opcode = Opcode.VEXPANDPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 136u + Opcode = Opcode.VEXPANDPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 136u + Opcode = Opcode.VEXPANDPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RM 512 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 136u + Opcode = Opcode.VEXPANDPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 136u + Opcode = Opcode.VEXPANDPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 136u + Opcode = Opcode.VEXPANDPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RM 512 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 137(0x89) + { OpcodeByte = 137u + Opcode = Opcode.VPEXPANDD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 137u + Opcode = Opcode.VPEXPANDD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 137u + Opcode = Opcode.VPEXPANDD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RM 512 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 137u + Opcode = Opcode.VPEXPANDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RM 128 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 137u + Opcode = Opcode.VPEXPANDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RM 256 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 137u + Opcode = Opcode.VPEXPANDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RM 512 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 138(0x8A) + { OpcodeByte = 138u + Opcode = Opcode.VCOMPRESSPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 138u + Opcode = Opcode.VCOMPRESSPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 256; Reg(256, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 138u + Opcode = Opcode.VCOMPRESSPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 512; Reg(512, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 138u + Opcode = Opcode.VCOMPRESSPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 138u + Opcode = Opcode.VCOMPRESSPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 256; Reg(256, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 138u + Opcode = Opcode.VCOMPRESSPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 512; Reg(512, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 139(0x8B) + { OpcodeByte = 139u + Opcode = Opcode.VPCOMPRESSD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 139u + Opcode = Opcode.VPCOMPRESSD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 256; Reg(256, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 139u + Opcode = Opcode.VPCOMPRESSD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 512; Reg(512, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 139u + Opcode = Opcode.VPCOMPRESSQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(128, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 139u + Opcode = Opcode.VPCOMPRESSQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 256; Reg(256, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 139u + Opcode = Opcode.VPCOMPRESSQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 512; Reg(512, RegBit) |] + OpEn = OpEn.MR + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 140(0x8C) + |] + [| // index 141(0x8D) + { OpcodeByte = 141u + Opcode = Opcode.VPERMB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 141u + Opcode = Opcode.VPERMB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 141u + Opcode = Opcode.VPERMB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 141u + Opcode = Opcode.VPERMW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 141u + Opcode = Opcode.VPERMW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 141u + Opcode = Opcode.VPERMW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 142(0x8E) + |] + [| // index 143(0x8F) + { OpcodeByte = 143u + Opcode = Opcode.VPSHUFBITQMB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 143u + Opcode = Opcode.VPSHUFBITQMB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 143u + Opcode = Opcode.VPSHUFBITQMB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 144(0x90) + { OpcodeByte = 144u + Opcode = Opcode.VPGATHERDD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.NoModRM + Operands = [| Reg(128, RegBit); MemVSIB 32 |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 144u + Opcode = Opcode.VPGATHERDD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.NoModRM + Operands = [| Reg(256, RegBit); MemVSIB 32 |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 144u + Opcode = Opcode.VPGATHERDD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.NoModRM + Operands = [| Reg(512, RegBit); MemVSIB 32 |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 144u + Opcode = Opcode.VPGATHERDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.NoModRM + Operands = [| Reg(128, RegBit); MemVSIB 32 |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 144u + Opcode = Opcode.VPGATHERDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.NoModRM + Operands = [| Reg(256, RegBit); MemVSIB 32 |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 144u + Opcode = Opcode.VPGATHERDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.NoModRM + Operands = [| Reg(512, RegBit); MemVSIB 32 |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 145(0x91) + { OpcodeByte = 145u + Opcode = Opcode.VPGATHERQD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.NoModRM + Operands = [| Reg(128, RegBit); MemVSIB 64 |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 145u + Opcode = Opcode.VPGATHERQD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.NoModRM + Operands = [| Reg(128, RegBit); MemVSIB 64 |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 145u + Opcode = Opcode.VPGATHERQD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.NoModRM + Operands = [| Reg(256, RegBit); MemVSIB 64 |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 145u + Opcode = Opcode.VPGATHERQQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.NoModRM + Operands = [| Reg(128, RegBit); MemVSIB 64 |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 145u + Opcode = Opcode.VPGATHERQQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.NoModRM + Operands = [| Reg(256, RegBit); MemVSIB 64 |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 145u + Opcode = Opcode.VPGATHERQQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.NoModRM + Operands = [| Reg(512, RegBit); MemVSIB 64 |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 146(0x92) + { OpcodeByte = 146u + Opcode = Opcode.VGATHERDPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.NoModRM + Operands = [| Reg(128, RegBit); MemVSIB 32 |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 146u + Opcode = Opcode.VGATHERDPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.NoModRM + Operands = [| Reg(256, RegBit); MemVSIB 32 |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 146u + Opcode = Opcode.VGATHERDPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.NoModRM + Operands = [| Reg(512, RegBit); MemVSIB 32 |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 146u + Opcode = Opcode.VGATHERDPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.NoModRM + Operands = [| Reg(128, RegBit); MemVSIB 32 |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 146u + Opcode = Opcode.VGATHERDPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.NoModRM + Operands = [| Reg(256, RegBit); MemVSIB 32 |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 146u + Opcode = Opcode.VGATHERDPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.NoModRM + Operands = [| Reg(512, RegBit); MemVSIB 32 |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 147(0x93) + { OpcodeByte = 147u + Opcode = Opcode.VGATHERQPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.NoModRM + Operands = [| Reg(128, RegBit); MemVSIB 64 |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 147u + Opcode = Opcode.VGATHERQPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.NoModRM + Operands = [| Reg(128, RegBit); MemVSIB 64 |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 147u + Opcode = Opcode.VGATHERQPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.NoModRM + Operands = [| Reg(256, RegBit); MemVSIB 64 |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 147u + Opcode = Opcode.VGATHERQPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.NoModRM + Operands = [| Reg(128, RegBit); MemVSIB 64 |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 147u + Opcode = Opcode.VGATHERQPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.NoModRM + Operands = [| Reg(256, RegBit); MemVSIB 64 |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 147u + Opcode = Opcode.VGATHERQPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.NoModRM + Operands = [| Reg(512, RegBit); MemVSIB 64 |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 148(0x94) + |] + [| // index 149(0x95) + |] + [| // index 150(0x96) + { OpcodeByte = 150u + Opcode = Opcode.VFMADDSUB132PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 150u + Opcode = Opcode.VFMADDSUB132PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 150u + Opcode = Opcode.VFMADDSUB132PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstEr(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 150u + Opcode = Opcode.VFMADDSUB132PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 150u + Opcode = Opcode.VFMADDSUB132PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 150u + Opcode = Opcode.VFMADDSUB132PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstEr(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 151(0x97) + { OpcodeByte = 151u + Opcode = Opcode.VFMSUBADD132PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 151u + Opcode = Opcode.VFMSUBADD132PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 151u + Opcode = Opcode.VFMSUBADD132PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstEr(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 151u + Opcode = Opcode.VFMSUBADD132PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 151u + Opcode = Opcode.VFMSUBADD132PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 151u + Opcode = Opcode.VFMSUBADD132PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstEr(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 152(0x98) + { OpcodeByte = 152u + Opcode = Opcode.VFMADD132PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 152u + Opcode = Opcode.VFMADD132PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 152u + Opcode = Opcode.VFMADD132PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstEr(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 152u + Opcode = Opcode.VFMADD132PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 152u + Opcode = Opcode.VFMADD132PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 152u + Opcode = Opcode.VFMADD132PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstEr(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 153(0x99) + { OpcodeByte = 153u + Opcode = Opcode.VFMADD132SD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMEr(128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 153u + Opcode = Opcode.VFMADD132SS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMEr(128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 154(0x9A) + { OpcodeByte = 154u + Opcode = Opcode.VFMSUB132PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 154u + Opcode = Opcode.VFMSUB132PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 154u + Opcode = Opcode.VFMSUB132PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstEr(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 154u + Opcode = Opcode.VFMSUB132PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 154u + Opcode = Opcode.VFMSUB132PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 154u + Opcode = Opcode.VFMSUB132PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstEr(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 154u + Opcode = Opcode.V4FMADDPS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); Mem 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1_4X } + |] + [| // index 155(0x9B) + { OpcodeByte = 155u + Opcode = Opcode.VFMSUB132SD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMEr(128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 155u + Opcode = Opcode.VFMSUB132SS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMEr(128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 155u + Opcode = Opcode.V4FMADDSS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); Mem 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1_4X } + |] + [| // index 156(0x9C) + { OpcodeByte = 156u + Opcode = Opcode.VFNMADD132PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 156u + Opcode = Opcode.VFNMADD132PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 156u + Opcode = Opcode.VFNMADD132PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstEr(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 156u + Opcode = Opcode.VFNMADD132PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 156u + Opcode = Opcode.VFNMADD132PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 156u + Opcode = Opcode.VFNMADD132PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstEr(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 157(0x9D) + { OpcodeByte = 157u + Opcode = Opcode.VFNMADD132SD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMEr(128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 157u + Opcode = Opcode.VFNMADD132SS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMEr(128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 158(0x9E) + { OpcodeByte = 158u + Opcode = Opcode.VFNMSUB132PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 158u + Opcode = Opcode.VFNMSUB132PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 158u + Opcode = Opcode.VFNMSUB132PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstEr(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 158u + Opcode = Opcode.VFNMSUB132PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 158u + Opcode = Opcode.VFNMSUB132PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 158u + Opcode = Opcode.VFNMSUB132PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstEr(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 159(0x9F) + { OpcodeByte = 159u + Opcode = Opcode.VFNMSUB132SD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMEr(128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 159u + Opcode = Opcode.VFNMSUB132SS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMEr(128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 160(0xA0) + { OpcodeByte = 160u + Opcode = Opcode.VPSCATTERDD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.NoModRM + Operands = [| MemVSIB 32; Reg(128, RegBit) |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 160u + Opcode = Opcode.VPSCATTERDD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.NoModRM + Operands = [| MemVSIB 32; Reg(256, RegBit) |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 160u + Opcode = Opcode.VPSCATTERDD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.NoModRM + Operands = [| MemVSIB 32; Reg(512, RegBit) |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 160u + Opcode = Opcode.VPSCATTERDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.NoModRM + Operands = [| MemVSIB 32; Reg(128, RegBit) |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 160u + Opcode = Opcode.VPSCATTERDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.NoModRM + Operands = [| MemVSIB 32; Reg(256, RegBit) |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 160u + Opcode = Opcode.VPSCATTERDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.NoModRM + Operands = [| MemVSIB 32; Reg(512, RegBit) |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 161(0xA1) + { OpcodeByte = 161u + Opcode = Opcode.VPSCATTERQD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.NoModRM + Operands = [| MemVSIB 64; Reg(128, RegBit) |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 161u + Opcode = Opcode.VPSCATTERQD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.NoModRM + Operands = [| MemVSIB 64; Reg(128, RegBit) |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 161u + Opcode = Opcode.VPSCATTERQD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.NoModRM + Operands = [| MemVSIB 64; Reg(256, RegBit) |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 161u + Opcode = Opcode.VPSCATTERQQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.NoModRM + Operands = [| MemVSIB 64; Reg(128, RegBit) |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 161u + Opcode = Opcode.VPSCATTERQQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.NoModRM + Operands = [| MemVSIB 64; Reg(256, RegBit) |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 161u + Opcode = Opcode.VPSCATTERQQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.NoModRM + Operands = [| MemVSIB 64; Reg(512, RegBit) |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 162(0xA2) + { OpcodeByte = 162u + Opcode = Opcode.VSCATTERDPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.NoModRM + Operands = [| MemVSIB 32; Reg(128, RegBit) |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 162u + Opcode = Opcode.VSCATTERDPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.NoModRM + Operands = [| MemVSIB 32; Reg(256, RegBit) |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 162u + Opcode = Opcode.VSCATTERDPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.NoModRM + Operands = [| MemVSIB 32; Reg(512, RegBit) |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 162u + Opcode = Opcode.VSCATTERDPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.NoModRM + Operands = [| MemVSIB 32; Reg(128, RegBit) |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 162u + Opcode = Opcode.VSCATTERDPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.NoModRM + Operands = [| MemVSIB 32; Reg(256, RegBit) |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 162u + Opcode = Opcode.VSCATTERDPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.NoModRM + Operands = [| MemVSIB 32; Reg(512, RegBit) |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 163(0xA3) + { OpcodeByte = 163u + Opcode = Opcode.VSCATTERQPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.NoModRM + Operands = [| MemVSIB 64; Reg(128, RegBit) |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 163u + Opcode = Opcode.VSCATTERQPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.NoModRM + Operands = [| MemVSIB 64; Reg(128, RegBit) |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 163u + Opcode = Opcode.VSCATTERQPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.NoModRM + Operands = [| MemVSIB 64; Reg(256, RegBit) |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 163u + Opcode = Opcode.VSCATTERQPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.NoModRM + Operands = [| MemVSIB 64; Reg(128, RegBit) |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 163u + Opcode = Opcode.VSCATTERQPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.NoModRM + Operands = [| MemVSIB 64; Reg(256, RegBit) |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 163u + Opcode = Opcode.VSCATTERQPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.NoModRM + Operands = [| MemVSIB 64; Reg(512, RegBit) |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 164(0xA4) + |] + [| // index 165(0xA5) + |] + [| // index 166(0xA6) + { OpcodeByte = 166u + Opcode = Opcode.VFMADDSUB213PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 166u + Opcode = Opcode.VFMADDSUB213PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 166u + Opcode = Opcode.VFMADDSUB213PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstEr(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 166u + Opcode = Opcode.VFMADDSUB213PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 166u + Opcode = Opcode.VFMADDSUB213PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 166u + Opcode = Opcode.VFMADDSUB213PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstEr(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 167(0xA7) + { OpcodeByte = 167u + Opcode = Opcode.VFMSUBADD213PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 167u + Opcode = Opcode.VFMSUBADD213PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 167u + Opcode = Opcode.VFMSUBADD213PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstEr(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 167u + Opcode = Opcode.VFMSUBADD213PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 167u + Opcode = Opcode.VFMSUBADD213PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 167u + Opcode = Opcode.VFMSUBADD213PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstEr(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 168(0xA8) + { OpcodeByte = 168u + Opcode = Opcode.VFMADD213PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 168u + Opcode = Opcode.VFMADD213PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 168u + Opcode = Opcode.VFMADD213PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstEr(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 168u + Opcode = Opcode.VFMADD213PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 168u + Opcode = Opcode.VFMADD213PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 168u + Opcode = Opcode.VFMADD213PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstEr(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 169(0xA9) + { OpcodeByte = 169u + Opcode = Opcode.VFMADD213SD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMEr(128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 169u + Opcode = Opcode.VFMADD213SS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMEr(128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 170(0xAA) + { OpcodeByte = 170u + Opcode = Opcode.VFMSUB213PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 170u + Opcode = Opcode.VFMSUB213PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 170u + Opcode = Opcode.VFMSUB213PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstEr(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 170u + Opcode = Opcode.VFMSUB213PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 170u + Opcode = Opcode.VFMSUB213PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 170u + Opcode = Opcode.VFMSUB213PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstEr(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 170u + Opcode = Opcode.V4FNMADDPS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); Mem 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1_4X } + |] + [| // index 171(0xAB) + { OpcodeByte = 171u + Opcode = Opcode.VFMSUB213SD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMEr(128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 171u + Opcode = Opcode.VFMSUB213SS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMEr(128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 171u + Opcode = Opcode.V4FNMADDSS + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); Mem 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1_4X } + |] + [| // index 172(0xAC) + { OpcodeByte = 172u + Opcode = Opcode.VFNMADD213PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 172u + Opcode = Opcode.VFNMADD213PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 172u + Opcode = Opcode.VFNMADD213PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstEr(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 172u + Opcode = Opcode.VFNMADD213PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 172u + Opcode = Opcode.VFNMADD213PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 172u + Opcode = Opcode.VFNMADD213PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstEr(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 173(0xAD) + { OpcodeByte = 173u + Opcode = Opcode.VFNMADD213SD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMEr(128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 173u + Opcode = Opcode.VFNMADD213SS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMEr(128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 174(0xAE) + { OpcodeByte = 174u + Opcode = Opcode.VFNMSUB213PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 174u + Opcode = Opcode.VFNMSUB213PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 174u + Opcode = Opcode.VFNMSUB213PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstEr(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 174u + Opcode = Opcode.VFNMSUB213PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 174u + Opcode = Opcode.VFNMSUB213PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 174u + Opcode = Opcode.VFNMSUB213PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstEr(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 175(0xAF) + { OpcodeByte = 175u + Opcode = Opcode.VFNMSUB213SD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMEr(128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 175u + Opcode = Opcode.VFNMSUB213SS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMEr(128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 176(0xB0) + |] + [| // index 177(0xB1) + |] + [| // index 178(0xB2) + |] + [| // index 179(0xB3) + |] + [| // index 180(0xB4) + { OpcodeByte = 180u + Opcode = Opcode.VPMADD52LUQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 180u + Opcode = Opcode.VPMADD52LUQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 180u + Opcode = Opcode.VPMADD52LUQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 181(0xB5) + { OpcodeByte = 181u + Opcode = Opcode.VPMADD52HUQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 181u + Opcode = Opcode.VPMADD52HUQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 181u + Opcode = Opcode.VPMADD52HUQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 182(0xB6) + { OpcodeByte = 182u + Opcode = Opcode.VFMADDSUB231PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 182u + Opcode = Opcode.VFMADDSUB231PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 182u + Opcode = Opcode.VFMADDSUB231PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstEr(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 182u + Opcode = Opcode.VFMADDSUB231PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 182u + Opcode = Opcode.VFMADDSUB231PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 182u + Opcode = Opcode.VFMADDSUB231PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstEr(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 183(0xB7) + { OpcodeByte = 183u + Opcode = Opcode.VFMSUBADD231PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 183u + Opcode = Opcode.VFMSUBADD231PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 183u + Opcode = Opcode.VFMSUBADD231PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstEr(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 183u + Opcode = Opcode.VFMSUBADD231PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 183u + Opcode = Opcode.VFMSUBADD231PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 183u + Opcode = Opcode.VFMSUBADD231PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstEr(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 184(0xB8) + { OpcodeByte = 184u + Opcode = Opcode.VFMADD231PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 184u + Opcode = Opcode.VFMADD231PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 184u + Opcode = Opcode.VFMADD231PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstEr(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 184u + Opcode = Opcode.VFMADD231PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 184u + Opcode = Opcode.VFMADD231PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 184u + Opcode = Opcode.VFMADD231PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstEr(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 185(0xB9) + { OpcodeByte = 185u + Opcode = Opcode.VFMADD231SD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMEr(128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 185u + Opcode = Opcode.VFMADD231SS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMEr(128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 186(0xBA) + { OpcodeByte = 186u + Opcode = Opcode.VFMSUB231PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 186u + Opcode = Opcode.VFMSUB231PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 186u + Opcode = Opcode.VFMSUB231PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstEr(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 186u + Opcode = Opcode.VFMSUB231PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 186u + Opcode = Opcode.VFMSUB231PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 186u + Opcode = Opcode.VFMSUB231PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstEr(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 187(0xBB) + { OpcodeByte = 187u + Opcode = Opcode.VFMSUB231SD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMEr(128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 187u + Opcode = Opcode.VFMSUB231SS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMEr(128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 188(0xBC) + { OpcodeByte = 188u + Opcode = Opcode.VFNMADD231PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 188u + Opcode = Opcode.VFNMADD231PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 188u + Opcode = Opcode.VFNMADD231PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstEr(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 188u + Opcode = Opcode.VFNMADD231PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 188u + Opcode = Opcode.VFNMADD231PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 188u + Opcode = Opcode.VFNMADD231PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstEr(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 189(0xBD) + { OpcodeByte = 189u + Opcode = Opcode.VFNMADD231SD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMEr(128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 189u + Opcode = Opcode.VFNMADD231SS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMEr(128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 190(0xBE) + { OpcodeByte = 190u + Opcode = Opcode.VFNMSUB231PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 190u + Opcode = Opcode.VFNMSUB231PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 190u + Opcode = Opcode.VFNMSUB231PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstEr(512, 512, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 190u + Opcode = Opcode.VFNMSUB231PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 190u + Opcode = Opcode.VFNMSUB231PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 190u + Opcode = Opcode.VFNMSUB231PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstEr(512, 512, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 191(0xBF) + { OpcodeByte = 191u + Opcode = Opcode.VFNMSUB231SD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMEr(128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 191u + Opcode = Opcode.VFNMSUB231SS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMEr(128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 192(0xC0) + |] + [| // index 193(0xC1) + |] + [| // index 194(0xC2) + |] + [| // index 195(0xC3) + |] + [| // index 196(0xC4) + { OpcodeByte = 196u + Opcode = Opcode.VPCONFLICTD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMBcst(128, 128, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 196u + Opcode = Opcode.VPCONFLICTD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMBcst(256, 256, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 196u + Opcode = Opcode.VPCONFLICTD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RMBcst(512, 512, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 196u + Opcode = Opcode.VPCONFLICTQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); RMBcst(128, 128, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 196u + Opcode = Opcode.VPCONFLICTQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); RMBcst(256, 256, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 196u + Opcode = Opcode.VPCONFLICTQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); RMBcst(512, 512, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 197(0xC5) + |] + [| // index 198(0xC6) + { OpcodeByte = 198u + Opcode = Opcode.VGATHERPF0DPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRMOp1 OpRegMem + Operands = [| MemVSIB 32 |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 198u + Opcode = Opcode.VGATHERPF0DPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRMOp1 OpRegMem + Operands = [| MemVSIB 32 |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 198u + Opcode = Opcode.VGATHERPF1DPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| MemVSIB 32 |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 198u + Opcode = Opcode.VGATHERPF1DPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| MemVSIB 32 |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 198u + Opcode = Opcode.VSCATTERPF0DPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRMOp5 OpRegMem + Operands = [| MemVSIB 32 |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 198u + Opcode = Opcode.VSCATTERPF0DPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRMOp5 OpRegMem + Operands = [| MemVSIB 32 |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 198u + Opcode = Opcode.VSCATTERPF1DPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRMOp6 OpRegMem + Operands = [| MemVSIB 32 |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 198u + Opcode = Opcode.VSCATTERPF1DPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRMOp6 OpRegMem + Operands = [| MemVSIB 32 |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 199(0xC7) + { OpcodeByte = 199u + Opcode = Opcode.VGATHERPF0QPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRMOp1 OpRegMem + Operands = [| MemVSIB 64 |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 199u + Opcode = Opcode.VGATHERPF0QPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRMOp1 OpRegMem + Operands = [| MemVSIB 64 |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 199u + Opcode = Opcode.VGATHERPF1QPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| MemVSIB 64 |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 199u + Opcode = Opcode.VGATHERPF1QPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRMOp2 OpRegMem + Operands = [| MemVSIB 64 |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 199u + Opcode = Opcode.VSCATTERPF0QPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRMOp5 OpRegMem + Operands = [| MemVSIB 64 |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 199u + Opcode = Opcode.VSCATTERPF0QPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRMOp5 OpRegMem + Operands = [| MemVSIB 64 |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 199u + Opcode = Opcode.VSCATTERPF1QPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRMOp6 OpRegMem + Operands = [| MemVSIB 64 |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 199u + Opcode = Opcode.VSCATTERPF1QPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRMOp6 OpRegMem + Operands = [| MemVSIB 64 |] + OpEn = OpEn.A + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 200(0xC8) + { OpcodeByte = 200u + Opcode = Opcode.VEXP2PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + RMBcstSae(512, 512, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 200u + Opcode = Opcode.VEXP2PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + RMBcstSae(512, 512, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 201(0xC9) + |] + [| // index 202(0xCA) + { OpcodeByte = 202u + Opcode = Opcode.VRCP28PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + RMBcstSae(512, 512, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 202u + Opcode = Opcode.VRCP28PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + RMBcstSae(512, 512, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 203(0xCB) + { OpcodeByte = 203u + Opcode = Opcode.VRCP28SD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMSae(128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 203u + Opcode = Opcode.VRCP28SS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMSae(128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 204(0xCC) + { OpcodeByte = 204u + Opcode = Opcode.VRSQRT28PD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + RMBcstSae(512, 512, 64) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 204u + Opcode = Opcode.VRSQRT28PS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + RMBcstSae(512, 512, 32) |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 205(0xCD) + { OpcodeByte = 205u + Opcode = Opcode.VRSQRT28SD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMSae(128, 64) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 205u + Opcode = Opcode.VRSQRT28SS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMSae(128, 32) |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 206(0xCE) + |] + [| // index 207(0xCF) + { OpcodeByte = 207u + Opcode = Opcode.VGF2P8MULB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 207u + Opcode = Opcode.VGF2P8MULB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 207u + Opcode = Opcode.VGF2P8MULB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 208(0xD0) + |] + [| // index 209(0xD1) + |] + [| // index 210(0xD2) + |] + [| // index 211(0xD3) + |] + [| // index 212(0xD4) + |] + [| // index 213(0xD5) + |] + [| // index 214(0xD6) + |] + [| // index 215(0xD7) + |] + [| // index 216(0xD8) + |] + [| // index 217(0xD9) + |] + [| // index 218(0xDA) + |] + [| // index 219(0xDB) + |] + [| // index 220(0xDC) + { OpcodeByte = 220u + Opcode = Opcode.VAESENC + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 220u + Opcode = Opcode.VAESENC + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 220u + Opcode = Opcode.VAESENC + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 221(0xDD) + { OpcodeByte = 221u + Opcode = Opcode.VAESENCLAST + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 221u + Opcode = Opcode.VAESENCLAST + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 221u + Opcode = Opcode.VAESENCLAST + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 222(0xDE) + { OpcodeByte = 222u + Opcode = Opcode.VAESDEC + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 222u + Opcode = Opcode.VAESDEC + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 222u + Opcode = Opcode.VAESDEC + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 223(0xDF) + { OpcodeByte = 223u + Opcode = Opcode.VAESDECLAST + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit); Reg(128, VVVV); RM 128 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 223u + Opcode = Opcode.VAESDECLAST + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit); Reg(256, VVVV); RM 256 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 223u + Opcode = Opcode.VAESDECLAST + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit); Reg(512, VVVV); RM 512 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 224(0xE0) + |] + [| // index 225(0xE1) + |] + [| // index 226(0xE2) + |] + [| // index 227(0xE3) + |] + [| // index 228(0xE4) + |] + [| // index 229(0xE5) + |] + [| // index 230(0xE6) + |] + [| // index 231(0xE7) + |] + [| // index 232(0xE8) + |] + [| // index 233(0xE9) + |] + [| // index 234(0xEA) + |] + [| // index 235(0xEB) + |] + [| // index 236(0xEC) + |] + [| // index 237(0xED) + |] + [| // index 238(0xEE) + |] + [| // index 239(0xEF) + |] + [| // index 240(0xF0) + |] + [| // index 241(0xF1) + |] + [| // index 242(0xF2) + |] + [| // index 243(0xF3) + |] + [| // index 244(0xF4) + |] + [| // index 245(0xF5) + |] + [| // index 246(0xF6) + |] + [| // index 247(0xF7) + |] + [| // index 248(0xF8) + |] + [| // index 249(0xF9) + |] + [| // index 250(0xFA) + |] + [| // index 251(0xFB) + |] + [| // index 252(0xFC) + |] + [| // index 253(0xFD) + |] + [| // index 254(0xFE) + |] + [| // index 255(0xFF) + |] + |] + +let (evexThree3A: InstructionCore[][]) = + [| + [| // index 0(0x00) + { OpcodeByte = 0u + Opcode = Opcode.VPERMQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + RMBcst(256, 256, 64) + Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 0u + Opcode = Opcode.VPERMQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + RMBcst(512, 512, 64) + Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 1(0x01) + { OpcodeByte = 1u + Opcode = Opcode.VPERMPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + RMBcst(256, 256, 64) + Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 1u + Opcode = Opcode.VPERMPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + RMBcst(512, 512, 64) + Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 2(0x02) + |] + [| // index 3(0x03) + { OpcodeByte = 3u + Opcode = Opcode.VALIGND + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) + Imm 8 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 3u + Opcode = Opcode.VALIGNQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) + Imm 8 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 3u + Opcode = Opcode.VALIGND + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) + Imm 8 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 3u + Opcode = Opcode.VALIGNQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) + Imm 8 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 3u + Opcode = Opcode.VALIGND + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) + Imm 8 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 3u + Opcode = Opcode.VALIGNQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) + Imm 8 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 4(0x04) + { OpcodeByte = 4u + Opcode = Opcode.VPERMILPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + RMBcst(128, 128, 32) + Imm 8 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 4u + Opcode = Opcode.VPERMILPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + RMBcst(256, 256, 32) + Imm 8 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 4u + Opcode = Opcode.VPERMILPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + RMBcst(512, 512, 32) + Imm 8 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 5(0x05) + { OpcodeByte = 5u + Opcode = Opcode.VPERMILPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + RMBcst(128, 128, 64) + Imm 8 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 5u + Opcode = Opcode.VPERMILPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + RMBcst(256, 256, 64) + Imm 8 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 5u + Opcode = Opcode.VPERMILPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + RMBcst(512, 512, 64) + Imm 8 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 6(0x06) + |] + [| // index 7(0x07) + |] + [| // index 8(0x08) + { OpcodeByte = 8u + Opcode = Opcode.VRNDSCALEPH + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + RMBcst(128, 128, 16) + Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 8u + Opcode = Opcode.VRNDSCALEPH + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + RMBcst(256, 256, 16) + Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 8u + Opcode = Opcode.VRNDSCALEPH + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + RMBcstSae(512, 512, 16) + Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 8u + Opcode = Opcode.VRNDSCALEPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + RMBcst(128, 128, 32) + Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 8u + Opcode = Opcode.VRNDSCALEPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + RMBcst(256, 256, 32) + Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 8u + Opcode = Opcode.VRNDSCALEPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + RMBcstSae(512, 512, 32) + Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 9(0x09) + { OpcodeByte = 9u + Opcode = Opcode.VRNDSCALEPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + RMBcst(128, 128, 64) + Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 9u + Opcode = Opcode.VRNDSCALEPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + RMBcst(256, 256, 64) + Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 9u + Opcode = Opcode.VRNDSCALEPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + RMBcstSae(512, 512, 64) + Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 10(0x0A) + { OpcodeByte = 10u + Opcode = Opcode.VRNDSCALESH + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMSae(128, 16) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Scalar } + { OpcodeByte = 10u + Opcode = Opcode.VRNDSCALESS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMSae(128, 32) + Imm 8 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 11(0x0B) + { OpcodeByte = 11u + Opcode = Opcode.VRNDSCALESD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMSae(128, 64) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 12(0x0C) + |] + [| // index 13(0x0D) + |] + [| // index 14(0x0E) + |] + [| // index 15(0x0F) + { OpcodeByte = 15u + Opcode = Opcode.VPALIGNR + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RM 128 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 15u + Opcode = Opcode.VPALIGNR + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RM 256 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 15u + Opcode = Opcode.VPALIGNR + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RM 512 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 16(0x10) + |] + [| // index 17(0x11) + |] + [| // index 18(0x12) + |] + [| // index 19(0x13) + |] + [| // index 20(0x14) + { OpcodeByte = 20u + Opcode = Opcode.VPEXTRB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RMdiff(32, 8); Reg(128, RegBit); Imm 8 |] + OpEn = OpEn.MRI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 21(0x15) + { OpcodeByte = 21u + Opcode = Opcode.VPEXTRW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RMdiff(32, 16); Reg(128, RegBit); Imm 8 |] + OpEn = OpEn.MRI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 22(0x16) + { OpcodeByte = 22u + Opcode = Opcode.VPEXTRD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 32; Reg(128, RegBit); Imm 8 |] + OpEn = OpEn.MRI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 22u + Opcode = Opcode.VPEXTRQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 64; Reg(128, RegBit); Imm 8 |] + OpEn = OpEn.MRI + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 23(0x17) + { OpcodeByte = 23u + Opcode = Opcode.VEXTRACTPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 32; Reg(128, RegBit); Imm 8 |] + OpEn = OpEn.MRI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 24(0x18) + { OpcodeByte = 24u + Opcode = Opcode.VINSERTF32X4 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RM 128 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple4 } + { OpcodeByte = 24u + Opcode = Opcode.VINSERTF32X4 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RM 128 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple4 } + { OpcodeByte = 24u + Opcode = Opcode.VINSERTF64X2 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RM 128 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple2 } + { OpcodeByte = 24u + Opcode = Opcode.VINSERTF64X2 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RM 128 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple2 } + |] + [| // index 25(0x19) + { OpcodeByte = 25u + Opcode = Opcode.VEXTRACTF32X4 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(256, RegBit); Imm 8 |] + OpEn = OpEn.MRI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple4 } + { OpcodeByte = 25u + Opcode = Opcode.VEXTRACTF32X4 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(512, RegBit); Imm 8 |] + OpEn = OpEn.MRI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple4 } + { OpcodeByte = 25u + Opcode = Opcode.VEXTRACTF64X2 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(256, RegBit); Imm 8 |] + OpEn = OpEn.MRI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple2 } + { OpcodeByte = 25u + Opcode = Opcode.VEXTRACTF64X2 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(512, RegBit); Imm 8 |] + OpEn = OpEn.MRI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple2 } + |] + [| // index 26(0x1A) + { OpcodeByte = 26u + Opcode = Opcode.VINSERTF32X8 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RM 256 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple8 } + { OpcodeByte = 26u + Opcode = Opcode.VINSERTF64X4 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RM 256 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple4 } + |] + [| // index 27(0x1B) + { OpcodeByte = 27u + Opcode = Opcode.VEXTRACTF32X8 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 256; Reg(512, RegBit); Imm 8 |] + OpEn = OpEn.MRI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple8 } + { OpcodeByte = 27u + Opcode = Opcode.VEXTRACTF64X4 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 256; Reg(512, RegBit); Imm 8 |] + OpEn = OpEn.MRI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple4 } + |] + [| // index 28(0x1C) + |] + [| // index 29(0x1D) + { OpcodeByte = 29u + Opcode = Opcode.VCVTPS2PH + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RMdiff(128, 64) + Reg(128, RegBit) + Imm 8 |] + OpEn = OpEn.MRI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.HalfMem } + { OpcodeByte = 29u + Opcode = Opcode.VCVTPS2PH + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(256, RegBit); Imm 8 |] + OpEn = OpEn.MRI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.HalfMem } + { OpcodeByte = 29u + Opcode = Opcode.VCVTPS2PH + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 256; RegSae 512; Imm 8 |] + OpEn = OpEn.MRI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.HalfMem } + |] + [| // index 30(0x1E) + { OpcodeByte = 30u + Opcode = Opcode.VPCMPUD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 30u + Opcode = Opcode.VPCMPUD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 30u + Opcode = Opcode.VPCMPUD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 30u + Opcode = Opcode.VPCMPUQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 30u + Opcode = Opcode.VPCMPUQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 30u + Opcode = Opcode.VPCMPUQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 31(0x1F) + { OpcodeByte = 31u + Opcode = Opcode.VPCMPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 31u + Opcode = Opcode.VPCMPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 31u + Opcode = Opcode.VPCMPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 31u + Opcode = Opcode.VPCMPQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 31u + Opcode = Opcode.VPCMPQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 31u + Opcode = Opcode.VPCMPQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 32(0x20) + { OpcodeByte = 32u + Opcode = Opcode.VPINSRB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(32, 8) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 33(0x21) + { OpcodeByte = 33u + Opcode = Opcode.VINSERTPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMdiff(128, 32) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 34(0x22) + { OpcodeByte = 34u + Opcode = Opcode.VPINSRD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RM 32 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 34u + Opcode = Opcode.VPINSRQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RM 64 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.None + Compat = CompatLegMode.NE + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 35(0x23) + { OpcodeByte = 35u + Opcode = Opcode.VSHUFF32X4 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) + Imm 8 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 35u + Opcode = Opcode.VSHUFF32X4 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) + Imm 8 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 35u + Opcode = Opcode.VSHUFF64X2 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) + Imm 8 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 35u + Opcode = Opcode.VSHUFF64X2 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) + Imm 8 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 36(0x24) + |] + [| // index 37(0x25) + { OpcodeByte = 37u + Opcode = Opcode.VPTERNLOGD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 37u + Opcode = Opcode.VPTERNLOGD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 37u + Opcode = Opcode.VPTERNLOGD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 37u + Opcode = Opcode.VPTERNLOGQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 37u + Opcode = Opcode.VPTERNLOGQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 37u + Opcode = Opcode.VPTERNLOGQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 38(0x26) + { OpcodeByte = 38u + Opcode = Opcode.VGETMANTPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + RMBcst(128, 128, 64) + Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 38u + Opcode = Opcode.VGETMANTPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + RMBcst(256, 256, 64) + Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 38u + Opcode = Opcode.VGETMANTPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + RMBcstSae(512, 512, 64) + Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 38u + Opcode = Opcode.VGETMANTPH + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + RMBcst(128, 128, 16) + Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 38u + Opcode = Opcode.VGETMANTPH + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + RMBcst(256, 256, 16) + Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 38u + Opcode = Opcode.VGETMANTPH + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + RMBcstSae(512, 512, 16) + Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 38u + Opcode = Opcode.VGETMANTPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + RMBcst(128, 128, 32) + Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 38u + Opcode = Opcode.VGETMANTPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + RMBcst(256, 256, 32) + Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 38u + Opcode = Opcode.VGETMANTPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + RMBcstSae(512, 512, 32) + Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 39(0x27) + { OpcodeByte = 39u + Opcode = Opcode.VGETMANTSD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMSae(128, 64) + Imm 8 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 39u + Opcode = Opcode.VGETMANTSH + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMSae(128, 16) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Scalar } + { OpcodeByte = 39u + Opcode = Opcode.VGETMANTSS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMSae(128, 32) + Imm 8 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 40(0x28) + |] + [| // index 41(0x29) + |] + [| // index 42(0x2A) + |] + [| // index 43(0x2B) + |] + [| // index 44(0x2C) + |] + [| // index 45(0x2D) + |] + [| // index 46(0x2E) + |] + [| // index 47(0x2F) + |] + [| // index 48(0x30) + |] + [| // index 49(0x31) + |] + [| // index 50(0x32) + |] + [| // index 51(0x33) + |] + [| // index 52(0x34) + |] + [| // index 53(0x35) + |] + [| // index 54(0x36) + |] + [| // index 55(0x37) + |] + [| // index 56(0x38) + { OpcodeByte = 56u + Opcode = Opcode.VINSERTI32X4 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RM 128 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple4 } + { OpcodeByte = 56u + Opcode = Opcode.VINSERTI32X4 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RM 128 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple4 } + { OpcodeByte = 56u + Opcode = Opcode.VINSERTI64X2 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RM 128 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple2 } + { OpcodeByte = 56u + Opcode = Opcode.VINSERTI64X2 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RM 128 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple2 } + |] + [| // index 57(0x39) + { OpcodeByte = 57u + Opcode = Opcode.VEXTRACTI32X4 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(256, RegBit); Imm 8 |] + OpEn = OpEn.MRI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple4 } + { OpcodeByte = 57u + Opcode = Opcode.VEXTRACTI32X4 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(512, RegBit); Imm 8 |] + OpEn = OpEn.MRI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple4 } + { OpcodeByte = 57u + Opcode = Opcode.VEXTRACTI64X2 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(256, RegBit); Imm 8 |] + OpEn = OpEn.MRI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple2 } + { OpcodeByte = 57u + Opcode = Opcode.VEXTRACTI64X2 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 128; Reg(512, RegBit); Imm 8 |] + OpEn = OpEn.MRI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple2 } + |] + [| // index 58(0x3A) + { OpcodeByte = 58u + Opcode = Opcode.VINSERTI32X8 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RM 256 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple8 } + { OpcodeByte = 58u + Opcode = Opcode.VINSERTI64X4 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RM 256 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple4 } + |] + [| // index 59(0x3B) + { OpcodeByte = 59u + Opcode = Opcode.VEXTRACTI32X8 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 256; Reg(512, RegBit); Imm 8 |] + OpEn = OpEn.MRI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple8 } + { OpcodeByte = 59u + Opcode = Opcode.VEXTRACTI64X4 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| RM 256; Reg(512, RegBit); Imm 8 |] + OpEn = OpEn.MRI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple4 } + |] + [| // index 60(0x3C) + |] + [| // index 61(0x3D) + |] + [| // index 62(0x3E) + { OpcodeByte = 62u + Opcode = Opcode.VPCMPUB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(128, VVVV) + RM 128 + Imm 8 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 62u + Opcode = Opcode.VPCMPUB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(256, VVVV) + RM 256 + Imm 8 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 62u + Opcode = Opcode.VPCMPUB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(512, VVVV) + RM 512 + Imm 8 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 62u + Opcode = Opcode.VPCMPUW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(128, VVVV) + RM 128 + Imm 8 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 62u + Opcode = Opcode.VPCMPUW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(256, VVVV) + RM 256 + Imm 8 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 62u + Opcode = Opcode.VPCMPUW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(512, VVVV) + RM 512 + Imm 8 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 63(0x3F) + { OpcodeByte = 63u + Opcode = Opcode.VPCMPB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(128, VVVV) + RM 128 + Imm 8 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 63u + Opcode = Opcode.VPCMPB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(256, VVVV) + RM 256 + Imm 8 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 63u + Opcode = Opcode.VPCMPB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(512, VVVV) + RM 512 + Imm 8 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 63u + Opcode = Opcode.VPCMPW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(128, VVVV) + RM 128 + Imm 8 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 63u + Opcode = Opcode.VPCMPW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(256, VVVV) + RM 256 + Imm 8 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 63u + Opcode = Opcode.VPCMPW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(512, VVVV) + RM 512 + Imm 8 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 64(0x40) + |] + [| // index 65(0x41) + |] + [| // index 66(0x42) + { OpcodeByte = 66u + Opcode = Opcode.VDBPSADBW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RM 128 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 66u + Opcode = Opcode.VDBPSADBW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RM 256 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 66u + Opcode = Opcode.VDBPSADBW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RM 512 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 67(0x43) + { OpcodeByte = 67u + Opcode = Opcode.VSHUFI32X4 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) + Imm 8 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 67u + Opcode = Opcode.VSHUFI32X4 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) + Imm 8 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 67u + Opcode = Opcode.VSHUFI64X2 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) + Imm 8 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 67u + Opcode = Opcode.VSHUFI64X2 + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) + Imm 8 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 68(0x44) + { OpcodeByte = 68u + Opcode = Opcode.VPCLMULQDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RM 128 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 68u + Opcode = Opcode.VPCLMULQDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RM 256 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 68u + Opcode = Opcode.VPCLMULQDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.WIG + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RM 512 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 69(0x45) + |] + [| // index 70(0x46) + |] + [| // index 71(0x47) + |] + [| // index 72(0x48) + |] + [| // index 73(0x49) + |] + [| // index 74(0x4A) + |] + [| // index 75(0x4B) + |] + [| // index 76(0x4C) + |] + [| // index 77(0x4D) + |] + [| // index 78(0x4E) + |] + [| // index 79(0x4F) + |] + [| // index 80(0x50) + { OpcodeByte = 80u + Opcode = Opcode.VRANGEPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 80u + Opcode = Opcode.VRANGEPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 80u + Opcode = Opcode.VRANGEPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstSae(512, 512, 64) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 80u + Opcode = Opcode.VRANGEPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 80u + Opcode = Opcode.VRANGEPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 80u + Opcode = Opcode.VRANGEPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstSae(512, 512, 32) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 81(0x51) + { OpcodeByte = 81u + Opcode = Opcode.VRANGESD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMSae(128, 64) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 81u + Opcode = Opcode.VRANGESS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMSae(128, 32) + Imm 8 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 82(0x52) + |] + [| // index 83(0x53) + |] + [| // index 84(0x54) + { OpcodeByte = 84u + Opcode = Opcode.VFIXUPIMMPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 84u + Opcode = Opcode.VFIXUPIMMPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 84u + Opcode = Opcode.VFIXUPIMMPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstSae(512, 512, 64) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 84u + Opcode = Opcode.VFIXUPIMMPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 84u + Opcode = Opcode.VFIXUPIMMPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 84u + Opcode = Opcode.VFIXUPIMMPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcstSae(512, 512, 32) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 85(0x55) + { OpcodeByte = 85u + Opcode = Opcode.VFIXUPIMMSD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMSae(128, 64) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 85u + Opcode = Opcode.VFIXUPIMMSS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMSae(128, 32) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 86(0x56) + { OpcodeByte = 86u + Opcode = Opcode.VREDUCEPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + RMBcst(128, 128, 64) + Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 86u + Opcode = Opcode.VREDUCEPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + RMBcst(256, 256, 64) + Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 86u + Opcode = Opcode.VREDUCEPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + RMBcstSae(512, 512, 64) + Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 86u + Opcode = Opcode.VREDUCEPH + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + RMBcst(128, 128, 16) + Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 86u + Opcode = Opcode.VREDUCEPH + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + RMBcst(256, 256, 16) + Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 86u + Opcode = Opcode.VREDUCEPH + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + RMBcstSae(512, 512, 16) + Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 86u + Opcode = Opcode.VREDUCEPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + RMBcst(128, 128, 32) + Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 86u + Opcode = Opcode.VREDUCEPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + RMBcst(256, 256, 32) + Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 86u + Opcode = Opcode.VREDUCEPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + RMBcstSae(512, 512, 32) + Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 87(0x57) + { OpcodeByte = 87u + Opcode = Opcode.VREDUCESD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMSae(128, 64) + Imm 8 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 87u + Opcode = Opcode.VREDUCESH + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMSae(128, 16) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Scalar } + { OpcodeByte = 87u + Opcode = Opcode.VREDUCESS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMSae(128, 32) + Imm 8 |] + OpEn = OpEn.RVM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 88(0x58) + |] + [| // index 89(0x59) + |] + [| // index 90(0x5A) + |] + [| // index 91(0x5B) + |] + [| // index 92(0x5C) + |] + [| // index 93(0x5D) + |] + [| // index 94(0x5E) + |] + [| // index 95(0x5F) + |] + [| // index 96(0x60) + |] + [| // index 97(0x61) + |] + [| // index 98(0x62) + |] + [| // index 99(0x63) + |] + [| // index 100(0x64) + |] + [| // index 101(0x65) + |] + [| // index 102(0x66) + { OpcodeByte = 102u + Opcode = Opcode.VFPCLASSPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + RMBcst(128, 128, 64) + Imm 8 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 102u + Opcode = Opcode.VFPCLASSPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + RMBcst(256, 256, 64) + Imm 8 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 102u + Opcode = Opcode.VFPCLASSPD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + RMBcst(512, 512, 64) + Imm 8 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 102u + Opcode = Opcode.VFPCLASSPH + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + RMBcst(128, 128, 16) + Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 102u + Opcode = Opcode.VFPCLASSPH + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + RMBcst(256, 256, 16) + Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 102u + Opcode = Opcode.VFPCLASSPH + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + RMBcst(512, 512, 16) + Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 102u + Opcode = Opcode.VFPCLASSPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + RMBcst(128, 128, 32) + Imm 8 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 102u + Opcode = Opcode.VFPCLASSPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + RMBcst(256, 256, 32) + Imm 8 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 102u + Opcode = Opcode.VFPCLASSPS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + RMBcst(512, 512, 32) + Imm 8 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 103(0x67) + { OpcodeByte = 103u + Opcode = Opcode.VFPCLASSSD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); RMdiff(128, 64); Imm 8 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + { OpcodeByte = 103u + Opcode = Opcode.VFPCLASSSH + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); RMdiff(128, 16); Imm 8 |] + OpEn = OpEn.RMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Scalar } + { OpcodeByte = 103u + Opcode = Opcode.VFPCLASSSS + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit); RMdiff(128, 32); Imm 8 |] + OpEn = OpEn.RM + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Tuple1Scalar } + |] + [| // index 104(0x68) + |] + [| // index 105(0x69) + |] + [| // index 106(0x6A) + |] + [| // index 107(0x6B) + |] + [| // index 108(0x6C) + |] + [| // index 109(0x6D) + |] + [| // index 110(0x6E) + |] + [| // index 111(0x6F) + |] + [| // index 112(0x70) + { OpcodeByte = 112u + Opcode = Opcode.VPSHLDW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RM 128 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 112u + Opcode = Opcode.VPSHLDW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RM 256 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 112u + Opcode = Opcode.VPSHLDW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RM 512 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 113(0x71) + { OpcodeByte = 113u + Opcode = Opcode.VPSHLDD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 113u + Opcode = Opcode.VPSHLDD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 113u + Opcode = Opcode.VPSHLDD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 113u + Opcode = Opcode.VPSHLDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 113u + Opcode = Opcode.VPSHLDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 113u + Opcode = Opcode.VPSHLDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 114(0x72) + { OpcodeByte = 114u + Opcode = Opcode.VPSHRDW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RM 128 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 114u + Opcode = Opcode.VPSHRDW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RM 256 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + { OpcodeByte = 114u + Opcode = Opcode.VPSHRDW + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RM 512 + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.FullMem } + |] + [| // index 115(0x73) + { OpcodeByte = 115u + Opcode = Opcode.VPSHRDD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 32) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 115u + Opcode = Opcode.VPSHRDD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 32) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 115u + Opcode = Opcode.VPSHRDD + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 32) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 115u + Opcode = Opcode.VPSHRDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 115u + Opcode = Opcode.VPSHRDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 115u + Opcode = Opcode.VPSHRDQ + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 116(0x74) + |] + [| // index 117(0x75) + |] + [| // index 118(0x76) + |] + [| // index 119(0x77) + |] + [| // index 120(0x78) + |] + [| // index 121(0x79) + |] + [| // index 122(0x7A) + |] + [| // index 123(0x7B) + |] + [| // index 124(0x7C) + |] + [| // index 125(0x7D) + |] + [| // index 126(0x7E) + |] + [| // index 127(0x7F) + |] + [| // index 128(0x80) + |] + [| // index 129(0x81) + |] + [| // index 130(0x82) + |] + [| // index 131(0x83) + |] + [| // index 132(0x84) + |] + [| // index 133(0x85) + |] + [| // index 134(0x86) + |] + [| // index 135(0x87) + |] + [| // index 136(0x88) + |] + [| // index 137(0x89) + |] + [| // index 138(0x8A) + |] + [| // index 139(0x8B) + |] + [| // index 140(0x8C) + |] + [| // index 141(0x8D) + |] + [| // index 142(0x8E) + |] + [| // index 143(0x8F) + |] + [| // index 144(0x90) + |] + [| // index 145(0x91) + |] + [| // index 146(0x92) + |] + [| // index 147(0x93) + |] + [| // index 148(0x94) + |] + [| // index 149(0x95) + |] + [| // index 150(0x96) + |] + [| // index 151(0x97) + |] + [| // index 152(0x98) + |] + [| // index 153(0x99) + |] + [| // index 154(0x9A) + |] + [| // index 155(0x9B) + |] + [| // index 156(0x9C) + |] + [| // index 157(0x9D) + |] + [| // index 158(0x9E) + |] + [| // index 159(0x9F) + |] + [| // index 160(0xA0) + |] + [| // index 161(0xA1) + |] + [| // index 162(0xA2) + |] + [| // index 163(0xA3) + |] + [| // index 164(0xA4) + |] + [| // index 165(0xA5) + |] + [| // index 166(0xA6) + |] + [| // index 167(0xA7) + |] + [| // index 168(0xA8) + |] + [| // index 169(0xA9) + |] + [| // index 170(0xAA) + |] + [| // index 171(0xAB) + |] + [| // index 172(0xAC) + |] + [| // index 173(0xAD) + |] + [| // index 174(0xAE) + |] + [| // index 175(0xAF) + |] + [| // index 176(0xB0) + |] + [| // index 177(0xB1) + |] + [| // index 178(0xB2) + |] + [| // index 179(0xB3) + |] + [| // index 180(0xB4) + |] + [| // index 181(0xB5) + |] + [| // index 182(0xB6) + |] + [| // index 183(0xB7) + |] + [| // index 184(0xB8) + |] + [| // index 185(0xB9) + |] + [| // index 186(0xBA) + |] + [| // index 187(0xBB) + |] + [| // index 188(0xBC) + |] + [| // index 189(0xBD) + |] + [| // index 190(0xBE) + |] + [| // index 191(0xBF) + |] + [| // index 192(0xC0) + |] + [| // index 193(0xC1) + |] + [| // index 194(0xC2) + { OpcodeByte = 194u + Opcode = Opcode.VCMPPH + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 16) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 194u + Opcode = Opcode.VCMPPH + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 16) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 194u + Opcode = Opcode.VCMPPH + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(512, VVVV) + RMBcstSae(512, 512, 16) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 194u + Opcode = Opcode.VCMPSH + PrefixType = Mandatory F3 + REXPrefixType = REXPrefixType.W0 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| OpMaskReg(RegBit) + Reg(128, VVVV) + RMSae(128, 16) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Scalar } + |] + [| // index 195(0xC3) + |] + [| // index 196(0xC4) + |] + [| // index 197(0xC5) + |] + [| // index 198(0xC6) + |] + [| // index 199(0xC7) + |] + [| // index 200(0xC8) + |] + [| // index 201(0xC9) + |] + [| // index 202(0xCA) + |] + [| // index 203(0xCB) + |] + [| // index 204(0xCC) + |] + [| // index 205(0xCD) + |] + [| // index 206(0xCE) + { OpcodeByte = 206u + Opcode = Opcode.VGF2P8AFFINEQB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 206u + Opcode = Opcode.VGF2P8AFFINEQB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 206u + Opcode = Opcode.VGF2P8AFFINEQB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 207(0xCF) + { OpcodeByte = 207u + Opcode = Opcode.VGF2P8AFFINEINVQB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V128 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(128, RegBit) + Reg(128, VVVV) + RMBcst(128, 128, 64) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 207u + Opcode = Opcode.VGF2P8AFFINEINVQB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V256 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(256, RegBit) + Reg(256, VVVV) + RMBcst(256, 256, 64) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + { OpcodeByte = 207u + Opcode = Opcode.VGF2P8AFFINEINVQB + PrefixType = Mandatory P66 + REXPrefixType = REXPrefixType.W1 + VectorLength = VectorLength.V512 + ModRM = ModRMType.ModRM OpRegMem + Operands = [| Reg(512, RegBit) + Reg(512, VVVV) + RMBcst(512, 512, 64) + Imm 8 |] + OpEn = OpEn.RVMI + Mode64 = Mode64.Valid + Compat = CompatLegMode.Valid + TupleType = TupleType.Full } + |] + [| // index 208(0xD0) + |] + [| // index 209(0xD1) + |] + [| // index 210(0xD2) + |] + [| // index 211(0xD3) + |] + [| // index 212(0xD4) + |] + [| // index 213(0xD5) + |] + [| // index 214(0xD6) + |] + [| // index 215(0xD7) + |] + [| // index 216(0xD8) + |] + [| // index 217(0xD9) + |] + [| // index 218(0xDA) + |] + [| // index 219(0xDB) + |] + [| // index 220(0xDC) + |] + [| // index 221(0xDD) + |] + [| // index 222(0xDE) + |] + [| // index 223(0xDF) + |] + [| // index 224(0xE0) + |] + [| // index 225(0xE1) + |] + [| // index 226(0xE2) + |] + [| // index 227(0xE3) + |] + [| // index 228(0xE4) + |] + [| // index 229(0xE5) + |] + [| // index 230(0xE6) + |] + [| // index 231(0xE7) + |] + [| // index 232(0xE8) + |] + [| // index 233(0xE9) + |] + [| // index 234(0xEA) + |] + [| // index 235(0xEB) + |] + [| // index 236(0xEC) + |] + [| // index 237(0xED) + |] + [| // index 238(0xEE) + |] + [| // index 239(0xEF) + |] + [| // index 240(0xF0) + |] + [| // index 241(0xF1) + |] + [| // index 242(0xF2) + |] + [| // index 243(0xF3) + |] + [| // index 244(0xF4) + |] + [| // index 245(0xF5) + |] + [| // index 246(0xF6) + |] + [| // index 247(0xF7) + |] + [| // index 248(0xF8) + |] + [| // index 249(0xF9) + |] + [| // index 250(0xFA) + |] + [| // index 251(0xFB) + |] + [| // index 252(0xFC) + |] + [| // index 253(0xFD) + |] + [| // index 254(0xFE) + |] + [| // index 255(0xFF) + |] + |] + diff --git a/src/FrontEnd/Intel/IntelTypes.fs b/src/FrontEnd/Intel/IntelTypes.fs new file mode 100644 index 00000000..1256cc42 --- /dev/null +++ b/src/FrontEnd/Intel/IntelTypes.fs @@ -0,0 +1,224 @@ +namespace B2R2.FrontEnd.Intel + +open B2R2 + +[] +type OpcodeClass = + | Normal of OpcodeMap + | VEX of OpcodeMap + | EVEX of OpcodeMap + +and OpcodeMap = + | OneByte + | TwoBytes + | ThreeBytes38 + | ThreeBytes3A + | MAP4 + | MAP5 + | MAP6 + | MAP7 + +type VectorLength = + | None = 0 + | V128 = 1 + | V256 = 2 + | V512 = 3 + +type PrefixType = + | Legacy of PrefixKind + | Mandatory of PrefixKind + +and PrefixKind = + | NP + | P66 + | F3 + | F2 + +type REXPrefixType = + | NOREX = 0 + | WIG = 1 + | W0 = 2 + | W1 = 3 + | REX = 4 + | REXW = 5 + +type OperandType = + | NoOpr + /// Register or Memory. + | RM of RegType + /// Register or Memory operand with different sizes. + | RMdiff of RegType * RegType + /// Register or Memory with embedded rounding {er} (only EVEX). + | RMEr of RegType * RegType + /// Register or Memory with suppress-all-exceptions {sae} (only EVEX). + | RMSae of RegType * RegType + /// Register or Memory with broadcast (only EVEX). + | RMBcst of RegType * RegType * RegType + /// Register or Memory with broadcast and {er} (only EVEX). + | RMBcstEr of RegType * RegType * RegType + /// Register or Memory with broadcast and {sae} (only EVEX). + | RMBcstSae of RegType * RegType * RegType + /// Register with suppress-all-exceptions {sae} (only EVEX). + | RegSae of RegType + /// Register. + | Reg of RegType * OprRegType + /// Address-size-dependent register operand. + | RegAddr + /// Opmask register. + | OpMaskReg of OprRegType + /// Opmask register or memory. + | KM of RegType + /// Segment register. + | Sreg + /// Control register. + | CtrlReg + /// Debug register. + | DebugReg + /// Fixed register. + | FixedReg of Register + /// ST(i) register. + | STReg of Register option + /// Bound register or memory. + | BM of RegType + /// Bound register. + | BndReg + /// MMX register or memory. + | MM of RegType + /// MMX register. + | MMXReg of OprRegType + /// Memory. + | Mem of RegType + /// Memory with VSIB addressing (eg. vm32x). + | MemVSIB of RegType + /// Memory offset. + | Moffs of RegType + /// Far memory offset. + | Far of RegType + /// Immediate. + | Imm of RegType + /// Fixed immediate. + | FixedImm of int + /// Relative offset. + | Rel of RegType + | Unknown of string (* XXX: Temp *) + +and OprRegType = + | RegBit (* ModRM:reg *) + | RMBit (* ModRM:r/m *) + | VVVV (* (E)VEX.vvvv *) + | IS4 (* imm8[7:4] *) + | OpRd (* opcode + rd *) + | Unused + +type ModRMType = + | NoModRM + | ModRM of OprType (* /r *) + | ModRMOp0 of OprType (* /0 *) + | ModRMOp1 of OprType (* /1 *) + | ModRMOp2 of OprType (* /2 *) + | ModRMOp3 of OprType (* /3 *) + | ModRMOp4 of OprType (* /4 *) + | ModRMOp5 of OprType (* /5 *) + | ModRMOp6 of OprType (* /6 *) + | ModRMOp7 of OprType (* /7 *) + | FixedModRM of byte (* /digit: fully fixed ModRM byte *) + | STiModRM of byte (* ex) C0+i: mod=11, low 3 bits select ST(i) *) + +and OprType = + | OpReg + | OpMem + | OpRegMem + +type OpEn = + | None = 0 + | A = 1 + | B = 2 + | C = 3 + | D = 4 + | E = 5 + | F = 6 + | FD = 7 + | G = 8 + | I = 9 + | II = 10 + | M = 11 + | M1 = 12 + | MC = 13 + | MI = 14 + | MR = 15 + | MRC = 16 + | MRI = 17 + | MVR = 18 + | O = 19 + | OI = 20 + | R = 21 + | RM = 22 + | RM0 = 23 + | RMI = 24 + | RMV = 25 + | RR = 26 + | RRI = 27 + | RVM = 28 + | RVMI = 29 + | RVMR = 30 + | RVR = 31 + | S = 32 + | TD = 33 + | VM = 34 + | VMI = 35 + | ZO = 36 + +type Mode64 = + | None = 0 + | NE = 1 + | NA = 2 + | NS = 3 + | Valid = 4 + | Invalid = 5 + | VNE = 6 + | Inv = 7 + +type CompatLegMode = + | None = 0 + | NE = 1 + | NA = 2 + | Valid = 3 + | Invalid = 4 + +/// The tupletype will be referenced in the instruction operand encoding table +/// in the reference page of each instruction, providing the cross reference for +/// the scaling factor N to encoding memory addressing operand. +type TupleType = + /// Compressed Displacement (DISP8*N) Affected by Embedded Broadcast. + | Full = 0 + | Half = 1 + /// EVEX DISP8*N for Instructions Not Affected by Embedded Broadcast. + | FullMem = 2 + | Tuple1Scalar = 3 + | Tuple1Fixed = 4 + | Tuple2 = 5 + | Tuple4 = 6 + | Tuple8 = 7 + | HalfMem = 8 + | QuarterMem = 9 + | EighthMem = 10 + | Mem128 = 11 + | MOVDDUP = 12 + | Quarter = 13 + | Scalar = 14 + | Tuple1_4X = 15 + | NA = 16 (* N/A *) + +/// Core instruction representation used in the generated source code. +type InstructionCore = + { OpcodeByte: uint32 + Opcode: Opcode + PrefixType: PrefixType + REXPrefixType: REXPrefixType + VectorLength: VectorLength + ModRM: ModRMType + Operands: OperandType[] + OpEn: OpEn + Mode64: Mode64 + Compat: CompatLegMode + TupleType: TupleType } \ No newline at end of file diff --git a/src/FrontEnd/Intel/Lifter.fs b/src/FrontEnd/Intel/Lifter.fs index 61c998c9..0d0688a4 100644 --- a/src/FrontEnd/Intel/Lifter.fs +++ b/src/FrontEnd/Intel/Lifter.fs @@ -211,8 +211,7 @@ let translate (ins: Instruction) insLen bld = | OP.XRSTOR | OP.XRSTORS | OP.XSAVE | OP.XSAVEC | OP.XSAVEC64 | OP.XSAVEOPT | OP.XSAVES | OP.XSAVES64 -> LiftingUtils.sideEffects bld ins insLen UnsupportedInstruction - | OP.XTEST -> - LiftingUtils.sideEffects bld ins insLen UnsupportedInstruction + | OP.XTEST -> LiftingUtils.sideEffects bld ins insLen UnsupportedInstruction | OP.IN | OP.INVD | OP.INVLPG | OP.IRET | OP.IRETQ | OP.IRETW | OP.IRETD | OP.LAR | OP.LGDT | OP.LIDT | OP.LLDT | OP.LMSW | OP.LSL | OP.LTR | OP.OUT | OP.SGDT @@ -541,8 +540,7 @@ let translate (ins: Instruction) insLen bld = | OP.VEXTRACTI64X4 -> AVXLifter.vextracti64x4 ins insLen bld | OP.VEXTRACTPS -> SSELifter.extractps ins insLen bld | OP.VINSERTI128 -> AVXLifter.vinserti128 ins insLen bld - | OP.VMPTRLD -> - LiftingUtils.sideEffects bld ins insLen UnsupportedInstruction + | OP.VMPTRLD -> LiftingUtils.sideEffects bld ins insLen UnsupportedInstruction | OP.VPADDB -> AVXLifter.vpaddb ins insLen bld | OP.VPADDD -> AVXLifter.vpaddd ins insLen bld | OP.VPADDQ -> AVXLifter.vpaddq ins insLen bld diff --git a/src/FrontEnd/Intel/OperandParsers.fs b/src/FrontEnd/Intel/OperandParsers.fs index d662fce5..b4e07bb5 100644 --- a/src/FrontEnd/Intel/OperandParsers.fs +++ b/src/FrontEnd/Intel/OperandParsers.fs @@ -538,9 +538,28 @@ let parseBoundRegister n = if n < 4 then Register.bound n |> OprReg else raise ParsingFailureException -let parseControlReg n = Register.control n |> OprReg - -let parseDebugReg n = Register.debug n |> OprReg +/// n is the raw ModRM.reg value (extended by REX.R). CR1, CR5-CR7, and +/// CR9-CR15 do not exist, so n is remapped to CR0/CR2/CR3/CR4/CR8's compact +/// position in the Register enum. +let parseControlReg n = + match n with + | 0 -> Register.control 0 + | 2 -> Register.control 1 + | 3 -> Register.control 2 + | 4 -> Register.control 3 + | 8 -> Register.control 4 + | _ -> raise ParsingFailureException + |> OprReg + +/// n is the raw ModRM.reg value (extended by REX.R). DR4, DR5, and +/// DR8-DR15 do not exist, so n is remapped to DR0-DR3/DR6/DR7's compact +/// position in the Register enum. +let parseDebugReg n = + match n with + | 0 | 1 | 2 | 3 -> Register.debug n + | 6 | 7 -> Register.debug (n - 2) + | _ -> raise ParsingFailureException + |> OprReg let parseOpMaskReg n = Register.opmask n |> OprReg diff --git a/src/FrontEnd/Intel/Parser.fs b/src/FrontEnd/Intel/Parser.fs index 3a28a7f7..682448fd 100644 --- a/src/FrontEnd/Intel/Parser.fs +++ b/src/FrontEnd/Intel/Parser.fs @@ -28,474 +28,11 @@ open System open B2R2 open B2R2.FrontEnd.BinLifter open B2R2.FrontEnd.Intel +open B2R2.FrontEnd.Intel.ParsingFunctions open LanguagePrimitives /// Represents a parser for Intel (x86 or x86-64) instructions. type IntelParser(wordSz, reader) = - let oparsers = - [| OperandParsers.RmGpr() :> OperandParser - OperandParsers.RmSeg() - OperandParsers.GprCtrl() - OperandParsers.GprDbg() - OperandParsers.RMMmx() - OperandParsers.MmMmx() - OperandParsers.BmBnd() - OperandParsers.RmBnd() - OperandParsers.GprRm() - OperandParsers.GprM() - OperandParsers.MGpr() - OperandParsers.SegRm() - OperandParsers.BndBm() - OperandParsers.BndRm() - OperandParsers.CtrlGpr() - OperandParsers.DbgGpr() - OperandParsers.MmxRm() - OperandParsers.MmxMm() - OperandParsers.MxMx() - OperandParsers.GprRMm() - OperandParsers.RegImm8() - OperandParsers.Imm8Reg() - OperandParsers.Imm8() - OperandParsers.Imm16() - OperandParsers.RegImm() - OperandParsers.SImm8() - OperandParsers.Imm() - OperandParsers.Es() - OperandParsers.Cs() - OperandParsers.Ss() - OperandParsers.Ds() - OperandParsers.Fs() - OperandParsers.Gs() - OperandParsers.ALDx() - OperandParsers.EaxDx() - OperandParsers.DxEax() - OperandParsers.DxAL() - OperandParsers.No() - OperandParsers.Eax() - OperandParsers.Ecx() - OperandParsers.Edx() - OperandParsers.Ebx() - OperandParsers.Esp() - OperandParsers.Ebp() - OperandParsers.Esi() - OperandParsers.Edi() - OperandParsers.Rax() - OperandParsers.Rcx() - OperandParsers.Rdx() - OperandParsers.Rbx() - OperandParsers.Rsp() - OperandParsers.Rbp() - OperandParsers.Rsi() - OperandParsers.Rdi() - OperandParsers.RaxRax() - OperandParsers.RaxRcx() - OperandParsers.RaxRdx() - OperandParsers.RaxRbx() - OperandParsers.RaxRsp() - OperandParsers.RaxRbp() - OperandParsers.RaxRsi() - OperandParsers.RaxRdi() - OperandParsers.GprRmImm8() - OperandParsers.GprRmImm() - OperandParsers.Rel8() - OperandParsers.Rel() - OperandParsers.Dir() - OperandParsers.RaxFar() - OperandParsers.FarRax() - OperandParsers.ALImm8() - OperandParsers.CLImm8() - OperandParsers.DLImm8() - OperandParsers.BLImm8() - OperandParsers.AhImm8() - OperandParsers.ChImm8() - OperandParsers.DhImm8() - OperandParsers.BhImm8() - OperandParsers.RaxImm() - OperandParsers.RcxImm() - OperandParsers.RdxImm() - OperandParsers.RbxImm() - OperandParsers.RspImm() - OperandParsers.RbpImm() - OperandParsers.RsiImm() - OperandParsers.RdiImm() - OperandParsers.ImmImm() - OperandParsers.RmImm() - OperandParsers.RmImm8() - OperandParsers.RmSImm8() - OperandParsers.MmxImm8() - OperandParsers.Mem() - OperandParsers.M1() - OperandParsers.RmCL() - OperandParsers.XmmVvXm() - OperandParsers.GprVvRm() - OperandParsers.XmVvXmm() - OperandParsers.Gpr() - OperandParsers.RmXmmImm8() - OperandParsers.XmmRmImm8() - OperandParsers.MmxMmImm8() - OperandParsers.MmxRmImm8() - OperandParsers.GprMmxImm8() - OperandParsers.XmmVvXmImm8() - OperandParsers.XmmVvXmXmm() - OperandParsers.XmRegImm8() - OperandParsers.GprRmVv() - OperandParsers.VvRmImm8() - OperandParsers.RmGprCL() - OperandParsers.XmmXmXmm0() - OperandParsers.XmmXmVv() - OperandParsers.VvRm() - OperandParsers.GprRmImm8Imm8() - OperandParsers.RmImm8Imm8() - OperandParsers.KnVvXm() - OperandParsers.GprKn() - OperandParsers.KnVvXmImm8() - OperandParsers.KnGpr() - OperandParsers.XmmVvXmmXm() - OperandParsers.KnKm() - OperandParsers.MKn() - OperandParsers.KKn() - OperandParsers.KnKmImm8() - OperandParsers.XmmVsXm() - OperandParsers.XmVsXmm() |] - - let szcomputers = - [| InsSizeComputers.Byte() :> InsSizeComputer - InsSizeComputers.Word() - InsSizeComputers.Def() - InsSizeComputers.VecDef() - InsSizeComputers.DV() - InsSizeComputers.D() - InsSizeComputers.MemW() - InsSizeComputers.RegW() - InsSizeComputers.WV() - InsSizeComputers.D64() - InsSizeComputers.PZ() - InsSizeComputers.DDq() - InsSizeComputers.DqDq() - InsSizeComputers.DqdDq() - InsSizeComputers.DqdDqMR() - InsSizeComputers.DqqDq() - InsSizeComputers.DqqDqMR() - InsSizeComputers.XqX() - InsSizeComputers.DqqDqWS() - InsSizeComputers.VyDq() - InsSizeComputers.VyDqMR() - InsSizeComputers.DY() - InsSizeComputers.QDq() - InsSizeComputers.DqqQ() - InsSizeComputers.DqQ() - InsSizeComputers.DqdY() - InsSizeComputers.DqqY() - InsSizeComputers.DqY() - InsSizeComputers.Dq() - InsSizeComputers.DQ() - InsSizeComputers.QQ() - InsSizeComputers.YQ() - InsSizeComputers.YQRM() - InsSizeComputers.DwQ() - InsSizeComputers.DwDq() - InsSizeComputers.DwDqMR() - InsSizeComputers.QD() - InsSizeComputers.Dqd() - InsSizeComputers.XDq() - InsSizeComputers.DqX() - InsSizeComputers.XD() - InsSizeComputers.DqqdqX() - InsSizeComputers.DqddqX() - InsSizeComputers.DqwDq() - InsSizeComputers.DqwX() - InsSizeComputers.DqQqq() - InsSizeComputers.DqbX() - InsSizeComputers.DbDq() - InsSizeComputers.BV() - InsSizeComputers.Q() - InsSizeComputers.S() - InsSizeComputers.DX() - InsSizeComputers.DqdXz() - InsSizeComputers.DqqX() - InsSizeComputers.P() - InsSizeComputers.PRM() - InsSizeComputers.XqXz() - InsSizeComputers.XXz() - InsSizeComputers.XzX() - InsSizeComputers.XzXz() - InsSizeComputers.DqqQq() - InsSizeComputers.DqqXz() - InsSizeComputers.QqXz() - InsSizeComputers.QqXzRM() - InsSizeComputers.DqdX() - InsSizeComputers.DXz() - InsSizeComputers.QXz() - InsSizeComputers.DqQq() - InsSizeComputers.DqXz() - InsSizeComputers.YDq() - InsSizeComputers.Qq() - InsSizeComputers.DqwdX() - InsSizeComputers.Y() - InsSizeComputers.QQb() - InsSizeComputers.QQd() - InsSizeComputers.QQw() - InsSizeComputers.VecDefRC() - InsSizeComputers.YP() |] - - let oneByteParsers = - [| OneOp00() :> ParsingJob - OneOp01() :> ParsingJob - OneOp02() :> ParsingJob - OneOp03() :> ParsingJob - OneOp04() :> ParsingJob - OneOp05() :> ParsingJob - OneOp06() :> ParsingJob - OneOp07() :> ParsingJob - OneOp08() :> ParsingJob - OneOp09() :> ParsingJob - OneOp0A() :> ParsingJob - OneOp0B() :> ParsingJob - OneOp0C() :> ParsingJob - OneOp0D() :> ParsingJob - OneOp0E() :> ParsingJob - OneOp0F() :> ParsingJob - OneOp10() :> ParsingJob - OneOp11() :> ParsingJob - OneOp12() :> ParsingJob - OneOp13() :> ParsingJob - OneOp14() :> ParsingJob - OneOp15() :> ParsingJob - OneOp16() :> ParsingJob - OneOp17() :> ParsingJob - OneOp18() :> ParsingJob - OneOp19() :> ParsingJob - OneOp1A() :> ParsingJob - OneOp1B() :> ParsingJob - OneOp1C() :> ParsingJob - OneOp1D() :> ParsingJob - OneOp1E() :> ParsingJob - OneOp1F() :> ParsingJob - OneOp20() :> ParsingJob - OneOp21() :> ParsingJob - OneOp22() :> ParsingJob - OneOp23() :> ParsingJob - OneOp24() :> ParsingJob - OneOp25() :> ParsingJob - OneOp26() :> ParsingJob - OneOp27() :> ParsingJob - OneOp28() :> ParsingJob - OneOp29() :> ParsingJob - OneOp2A() :> ParsingJob - OneOp2B() :> ParsingJob - OneOp2C() :> ParsingJob - OneOp2D() :> ParsingJob - OneOp2E() :> ParsingJob - OneOp2F() :> ParsingJob - OneOp30() :> ParsingJob - OneOp31() :> ParsingJob - OneOp32() :> ParsingJob - OneOp33() :> ParsingJob - OneOp34() :> ParsingJob - OneOp35() :> ParsingJob - OneOp36() :> ParsingJob - OneOp37() :> ParsingJob - OneOp38() :> ParsingJob - OneOp39() :> ParsingJob - OneOp3A() :> ParsingJob - OneOp3B() :> ParsingJob - OneOp3C() :> ParsingJob - OneOp3D() :> ParsingJob - OneOp3E() :> ParsingJob - OneOp3F() :> ParsingJob - OneOp40() :> ParsingJob - OneOp41() :> ParsingJob - OneOp42() :> ParsingJob - OneOp43() :> ParsingJob - OneOp44() :> ParsingJob - OneOp45() :> ParsingJob - OneOp46() :> ParsingJob - OneOp47() :> ParsingJob - OneOp48() :> ParsingJob - OneOp49() :> ParsingJob - OneOp4A() :> ParsingJob - OneOp4B() :> ParsingJob - OneOp4C() :> ParsingJob - OneOp4D() :> ParsingJob - OneOp4E() :> ParsingJob - OneOp4F() :> ParsingJob - OneOp50() :> ParsingJob - OneOp51() :> ParsingJob - OneOp52() :> ParsingJob - OneOp53() :> ParsingJob - OneOp54() :> ParsingJob - OneOp55() :> ParsingJob - OneOp56() :> ParsingJob - OneOp57() :> ParsingJob - OneOp58() :> ParsingJob - OneOp59() :> ParsingJob - OneOp5A() :> ParsingJob - OneOp5B() :> ParsingJob - OneOp5C() :> ParsingJob - OneOp5D() :> ParsingJob - OneOp5E() :> ParsingJob - OneOp5F() :> ParsingJob - OneOp60() :> ParsingJob - OneOp61() :> ParsingJob - OneOp62() :> ParsingJob - OneOp63() :> ParsingJob - OneOp64() :> ParsingJob - OneOp65() :> ParsingJob - OneOp66() :> ParsingJob - OneOp67() :> ParsingJob - OneOp68() :> ParsingJob - OneOp69() :> ParsingJob - OneOp6A() :> ParsingJob - OneOp6B() :> ParsingJob - OneOp6C() :> ParsingJob - OneOp6D() :> ParsingJob - OneOp6E() :> ParsingJob - OneOp6F() :> ParsingJob - OneOp70() :> ParsingJob - OneOp71() :> ParsingJob - OneOp72() :> ParsingJob - OneOp73() :> ParsingJob - OneOp74() :> ParsingJob - OneOp75() :> ParsingJob - OneOp76() :> ParsingJob - OneOp77() :> ParsingJob - OneOp78() :> ParsingJob - OneOp79() :> ParsingJob - OneOp7A() :> ParsingJob - OneOp7B() :> ParsingJob - OneOp7C() :> ParsingJob - OneOp7D() :> ParsingJob - OneOp7E() :> ParsingJob - OneOp7F() :> ParsingJob - OneOp80() :> ParsingJob - OneOp81() :> ParsingJob - OneOp82() :> ParsingJob - OneOp83() :> ParsingJob - OneOp84() :> ParsingJob - OneOp85() :> ParsingJob - OneOp86() :> ParsingJob - OneOp87() :> ParsingJob - OneOp88() :> ParsingJob - OneOp89() :> ParsingJob - OneOp8A() :> ParsingJob - OneOp8B() :> ParsingJob - OneOp8C() :> ParsingJob - OneOp8D() :> ParsingJob - OneOp8E() :> ParsingJob - OneOp8F() :> ParsingJob - OneOp90() :> ParsingJob - OneOp91() :> ParsingJob - OneOp92() :> ParsingJob - OneOp93() :> ParsingJob - OneOp94() :> ParsingJob - OneOp95() :> ParsingJob - OneOp96() :> ParsingJob - OneOp97() :> ParsingJob - OneOp98() :> ParsingJob - OneOp99() :> ParsingJob - OneOp9A() :> ParsingJob - OneOp9B() :> ParsingJob - OneOp9C() :> ParsingJob - OneOp9D() :> ParsingJob - OneOp9E() :> ParsingJob - OneOp9F() :> ParsingJob - OneOpA0() :> ParsingJob - OneOpA1() :> ParsingJob - OneOpA2() :> ParsingJob - OneOpA3() :> ParsingJob - OneOpA4() :> ParsingJob - OneOpA5() :> ParsingJob - OneOpA6() :> ParsingJob - OneOpA7() :> ParsingJob - OneOpA8() :> ParsingJob - OneOpA9() :> ParsingJob - OneOpAA() :> ParsingJob - OneOpAB() :> ParsingJob - OneOpAC() :> ParsingJob - OneOpAD() :> ParsingJob - OneOpAE() :> ParsingJob - OneOpAF() :> ParsingJob - OneOpB0() :> ParsingJob - OneOpB1() :> ParsingJob - OneOpB2() :> ParsingJob - OneOpB3() :> ParsingJob - OneOpB4() :> ParsingJob - OneOpB5() :> ParsingJob - OneOpB6() :> ParsingJob - OneOpB7() :> ParsingJob - OneOpB8() :> ParsingJob - OneOpB9() :> ParsingJob - OneOpBA() :> ParsingJob - OneOpBB() :> ParsingJob - OneOpBC() :> ParsingJob - OneOpBD() :> ParsingJob - OneOpBE() :> ParsingJob - OneOpBF() :> ParsingJob - OneOpC0() :> ParsingJob - OneOpC1() :> ParsingJob - OneOpC2() :> ParsingJob - OneOpC3() :> ParsingJob - OneOpC4() :> ParsingJob - OneOpC5() :> ParsingJob - OneOpC6() :> ParsingJob - OneOpC7() :> ParsingJob - OneOpC8() :> ParsingJob - OneOpC9() :> ParsingJob - OneOpCA() :> ParsingJob - OneOpCB() :> ParsingJob - OneOpCC() :> ParsingJob - OneOpCD() :> ParsingJob - OneOpCE() :> ParsingJob - OneOpCF() :> ParsingJob - OneOpD0() :> ParsingJob - OneOpD1() :> ParsingJob - OneOpD2() :> ParsingJob - OneOpD3() :> ParsingJob - OneOpD4() :> ParsingJob - OneOpD5() :> ParsingJob - OneOpD6() :> ParsingJob - OneOpD7() :> ParsingJob - OneOpD8() :> ParsingJob - OneOpD9() :> ParsingJob - OneOpDA() :> ParsingJob - OneOpDB() :> ParsingJob - OneOpDC() :> ParsingJob - OneOpDD() :> ParsingJob - OneOpDE() :> ParsingJob - OneOpDF() :> ParsingJob - OneOpE0() :> ParsingJob - OneOpE1() :> ParsingJob - OneOpE2() :> ParsingJob - OneOpE3() :> ParsingJob - OneOpE4() :> ParsingJob - OneOpE5() :> ParsingJob - OneOpE6() :> ParsingJob - OneOpE7() :> ParsingJob - OneOpE8() :> ParsingJob - OneOpE9() :> ParsingJob - OneOpEA() :> ParsingJob - OneOpEB() :> ParsingJob - OneOpEC() :> ParsingJob - OneOpED() :> ParsingJob - OneOpEE() :> ParsingJob - OneOpEF() :> ParsingJob - OneOpF0() :> ParsingJob - OneOpF1() :> ParsingJob - OneOpF2() :> ParsingJob - OneOpF3() :> ParsingJob - OneOpF4() :> ParsingJob - OneOpF5() :> ParsingJob - OneOpF6() :> ParsingJob - OneOpF7() :> ParsingJob - OneOpF8() :> ParsingJob - OneOpF9() :> ParsingJob - OneOpFA() :> ParsingJob - OneOpFB() :> ParsingJob - OneOpFC() :> ParsingJob - OneOpFD() :> ParsingJob - OneOpFE() :> ParsingJob - OneOpFF() :> ParsingJob |] - /// Split a byte value into two fileds (high 3 bits; low 5 bits), and /// categorize prefix values into 8 groups based on the high 3 bits (= 2^3). /// The below array is a collection of bitmaps that maps the low 5-bit value @@ -518,7 +55,527 @@ type IntelParser(wordSz, reader) = member _.Lift(ins, builder) = Lifter.translate ins ins.Length builder member _.Disasm(ins, builder) = disasm.Invoke(builder, ins); builder } - let phlp = ParsingHelper(reader, wordSz, oparsers, szcomputers, lifter) + let phlp = ParsingHelper(reader, wordSz, lifter) + + /// Returns true when the VEX/EVEX vector length satisfies the instruction's + /// vector-length constraint (or the constraint is absent). + let matchVectorLength (vex: VEXInfo option) insVecLen = + if insVecLen = VectorLength.None then true + else + match vex with + | Some v -> + match v.VectorLength with + | 128 -> insVecLen = VectorLength.V128 + | 256 -> insVecLen = VectorLength.V256 + | 512 -> insVecLen = VectorLength.V512 + | _ -> false + | _ -> true + + /// Returns the distinct operand sizes from an instruction's descriptors. + /// None entries represent operands with no explicit size. + let collectDistinctOpSizes operands = + Array.map (fun o -> + match o with + | RM sz | Reg(sz, _) | Mem sz | Imm sz | Rel sz | Moffs sz -> Some sz + | FixedReg(Register.AX) -> Some 16 + | _ -> None) operands + |> Array.distinct + + /// Returns true when every operand is 8-bit, meaning REX semantics do not + /// apply to this instruction. + let isAllOprSize8 oprSz = + match oprSz with + | [| Some 8 |] -> true + | _ -> false + + /// Returns true when the observed REX prefix satisfies the constraint + /// declared in the instruction core (NOREX / W0 / W1 / WIG / REXW). + let matchREX (phlp: ParsingHelper) (insCore: InstructionCore) = + let insREX = insCore.REXPrefixType + match phlp.REXPrefix with + | _ when isAllOprSize8 (collectDistinctOpSizes insCore.Operands) -> true + | REXPrefix.NOREX -> + (insREX = REXPrefixType.WIG) || (insREX = REXPrefixType.W0) || + (insREX = REXPrefixType.NOREX) + | r when (r &&& REXPrefix.REXW) = REXPrefix.REXW -> + (insREX = REXPrefixType.WIG) || (insREX = REXPrefixType.W1) || + (insREX = REXPrefixType.REXW) + //| r when (r &&& REXPrefix.REX) = REXPrefix.REX -> + // (insREX = REXPrefixType.WIG) || (insREX = REXPrefixType.W0) || + // (insREX = REXPrefixType.REX) + | _ -> true + + /// Returns true when pref satisfies insPref, treating Legacy NP as a fallback + /// for Mandatory NP. + let matchPrefixType pref insPref = + match pref with + | Mandatory NP -> insPref = Mandatory NP || insPref = Legacy NP + | Mandatory _ -> + if insPref = Legacy NP then false + else pref = insPref + | _ -> true + + /// Returns true when the current prefix state satisfies insPref, with Legacy + /// NP as a fallback for Mandatory NP. + let matchPrefixWithLegacyFallback (phlp: ParsingHelper) insPref = + let pref = + match phlp.VEXInfo with + | Some v -> v.VPrefixes + | _ -> phlp.Prefixes + let mPref = pref &&& (Prefix.OPSIZE ||| Prefix.REPZ ||| Prefix.REPNZ) + if Prefix.hasOprSz mPref then insPref = Mandatory P66 || insPref = Legacy NP + elif Prefix.hasREPZ mPref then insPref = Mandatory F3 || insPref = Legacy NP + elif Prefix.hasREPNZ mPref then + insPref = Mandatory F2 || insPref = Legacy NP + elif mPref = Prefix.None then + insPref = Legacy NP || insPref = Mandatory NP + else false + + /// Returns the effective PrefixType for opcodes that deviate from standard + /// mandatory-prefix rules; None for all other opcodes. + let tryResolveSpecialPrefix (phlp: ParsingHelper) opByte = + if phlp.VEXInfo.IsSome then None + else + match phlp.OpcodeClass with + | OpcodeClass.Normal OneByte + when opByte = 0x90uy && Prefix.hasREPZ phlp.Prefixes -> + Some(Mandatory F3) // F3 90 = PAUSE + | OpcodeClass.Normal TwoBytes when opByte = 0xBCuy || opByte = 0xBDuy -> + // 0F BC/BD use F3 as an opcode selector (TZCNT/LZCNT), while 66 still + // acts as the ordinary operand-size prefix for BSF/BSR. + if Prefix.hasREPZ phlp.Prefixes then Some(Mandatory F3) + else Some(Mandatory NP) + | _ -> None + + /// Returns true when the current prefix satisfies the instruction's + /// requirement, applying special-case resolution where needed. + let matchPrefix (phlp: ParsingHelper) opByte insPref = + match tryResolveSpecialPrefix phlp opByte with + | Some pref -> matchPrefixType pref insPref + | None -> matchPrefixWithLegacyFallback phlp insPref + + /// Returns true when the special-case prefix acted as an opcode selector and + /// should be stripped after matching. + let shouldConsumeSpecialPrefix pref = + match pref with + | Mandatory NP -> false + | Mandatory _ -> true + | _ -> false + + /// Returns true when the matched prefix should be removed after parsing + /// (VEX always; legacy mandatory only when used as an opcode selector). + let shouldConsumePrefix (phlp: ParsingHelper) (insCore: InstructionCore) = + match phlp.VEXInfo with + | Some _ -> true + | None -> + match tryResolveSpecialPrefix phlp (uint8 insCore.OpcodeByte) with + | Some pref -> shouldConsumeSpecialPrefix pref + | None -> + match insCore.PrefixType with + | Mandatory _ -> true + | _ -> false + + /// Returns true for opcodes that implicitly operate on 16-bit operands + /// without encoding an explicit size (e.g., MOVSW, PUSHF, IRET). + let hasImplicit16BitOprSize = function + | Opcode.CBW | Opcode.CWD + | Opcode.PUSHF | Opcode.PUSHA + | Opcode.POPF | Opcode.POPA + | Opcode.MOVSW | Opcode.CMPSW | Opcode.SCASW | Opcode.LODSW | Opcode.STOSW + | Opcode.INSW | Opcode.OUTSW + | Opcode.IRET -> true + | _ -> false + + /// Returns true when this instruction variant requires the 66h prefix. Some + /// opcodes are excluded because their 16-bit form omits it. + let needs66hPrefix oprSz op = + match oprSz with + | [| Some 16 |] when op = Opcode.RET -> false + | [| Some 16; _ |] when op = Opcode.ENTER -> false + | [| None; Some 16 |] when op = Opcode.MOV -> false + | [| Some 8; Some 16 |] when op = Opcode.OUT -> true + | [| None |] when hasImplicit16BitOprSize op -> true + | [| Some 16 |] + | [| Some 16; _ |] + | [| None; Some 16 |] (* Temp *) -> true + | _ -> false + + /// Returns true when the current prefix is compatible with the operand size + /// implied by the instruction's descriptors. + let matchOperandSize pref (insCore: InstructionCore) = + if insCore.OpEn = OpEn.None then true + else + let oprSz = collectDistinctOpSizes insCore.Operands + if needs66hPrefix oprSz insCore.Opcode then + // FIXME: 16-bit operands do not always require a 66h prefix. + pref &&& Prefix.OPSIZE = Prefix.OPSIZE + else true + + /// Returns true when the CPU word size is compatible with the instruction's + /// Mode64/Compat flags. + let matchCPUMode wordSize mode64 compat = + match wordSize with + | WordSize.Bit64 when mode64 = Mode64.Invalid -> false + | WordSize.Bit64 -> mode64 <> Mode64.NE && mode64 <> Mode64.NS // ?? + | WordSize.Bit32 -> compat <> CompatLegMode.NE + | _ -> failwith "Unsupported word size." + + /// Returns true when the ModRM type encodes an opcode group extension (/0–/7) + /// that further disambiguates the instruction. + let isOpcodeGroupExtension = function + | ModRMType.ModRMOp0 _ | ModRMType.ModRMOp1 _ | ModRMType.ModRMOp2 _ + | ModRMType.ModRMOp3 _ | ModRMType.ModRMOp4 _ | ModRMType.ModRMOp5 _ + | ModRMType.ModRMOp6 _ | ModRMType.ModRMOp7 _ -> true + | _ -> false + + /// Returns true when the ModRM reg field matches the opcode group extension + /// digit (/0-/7) declared in the instruction core. + let matchOpcodeGroupExtension (span: ByteSpan) (phlp: ParsingHelper) + (i: InstructionCore) = + if isOpcodeGroupExtension i.ModRM then + let modRM = span[phlp.CurrPos] + let reg = (modRM >>> 3) &&& 0b111uy + match reg with + | 0uy -> i.ModRM = ModRMType.ModRMOp0 OpRegMem + | 1uy -> i.ModRM = ModRMType.ModRMOp1 OpRegMem + | 2uy -> i.ModRM = ModRMType.ModRMOp2 OpRegMem + | 3uy -> i.ModRM = ModRMType.ModRMOp3 OpRegMem + | 4uy -> i.ModRM = ModRMType.ModRMOp4 OpRegMem + | 5uy -> i.ModRM = ModRMType.ModRMOp5 OpRegMem + | 6uy -> i.ModRM = ModRMType.ModRMOp6 OpRegMem + | 7uy -> i.ModRM = ModRMType.ModRMOp7 OpRegMem + | _ -> false + else true + + /// Returns true when the ModRM reg field satisfies the operand type and + /// expected register index constraints. + let matchModRMRegConstraint (span: ByteSpan) (phlp: ParsingHelper) + (i: InstructionCore) oprType insReg = + let modRM = span[phlp.CurrPos] + let reg = Operands.getReg modRM + match oprType with + | OpReg -> Operands.modIsReg modRM && reg = insReg + | OpMem -> Operands.modIsMemory modRM && reg = insReg + | _ -> reg = insReg + + /// Returns true when the ModRM byte satisfies all constraints in the + /// instruction core (fixed, STi, group digit, or unconstrained). + let matchModRM (span: ByteSpan) (phlp: ParsingHelper) + (i: InstructionCore) = + match i.ModRM with + | ModRMType.ModRMOp0 o -> matchModRMRegConstraint span phlp i o 0 + | ModRMType.ModRMOp1 o -> matchModRMRegConstraint span phlp i o 1 + | ModRMType.ModRMOp2 o -> matchModRMRegConstraint span phlp i o 2 + | ModRMType.ModRMOp3 o -> matchModRMRegConstraint span phlp i o 3 + | ModRMType.ModRMOp4 o -> matchModRMRegConstraint span phlp i o 4 + | ModRMType.ModRMOp5 o -> matchModRMRegConstraint span phlp i o 5 + | ModRMType.ModRMOp6 o -> matchModRMRegConstraint span phlp i o 6 + | ModRMType.ModRMOp7 o -> matchModRMRegConstraint span phlp i o 7 + | ModRMType.FixedModRM v -> span[phlp.CurrPos] = v + | ModRMType.STiModRM v -> + let modRM = span[phlp.CurrPos] + v <= modRM && modRM <= v + 7uy + | _ -> true + + /// JCXZ/JECXZ/JRCXZ share opcode 0xE3 and are selected by the effective + /// address size determined by the current mode and the 67h prefix: + /// 32-bit mode -> JECXZ, 67h -> JCXZ + /// 64-bit mode -> JRCXZ, 67h -> JECXZ + let matchJcxzAddrSize phlp (insCore: InstructionCore) = + if uint8 insCore.OpcodeByte <> 0xE3uy then true + else + match ParsingHelper.GetEffAddrSize phlp, insCore.Opcode with + | 16, Opcode.JCXZ + | 32, Opcode.JECXZ + | 64, Opcode.JRCXZ -> true + | _ -> false + + /// Returns the index of the first instruction-core entry that satisfies + /// all matching constraints; raises if no variant matches. + let selectInstrVariant (span: ByteSpan) (phlp: ParsingHelper) + (ins: InstructionCore[]) = + let insLen = ins.Length + if insLen = 0 then failwith "Error: Instruction core array is empty." + else + let mutable idx = -1 + let mutable i = 0 + while i < insLen && idx = -1 do + let insCore = ins[i] + let p = + matchPrefix phlp (uint8 insCore.OpcodeByte) + insCore.PrefixType + let s = matchOperandSize phlp.Prefixes insCore + let c = matchCPUMode phlp.WordSize insCore.Mode64 insCore.Compat + let r = matchREX phlp insCore + let v = matchVectorLength phlp.VEXInfo insCore.VectorLength + let x = matchModRM span phlp insCore + let a = matchJcxzAddrSize phlp insCore +#if DEBUG + printfn "Checking %d: p=%b, s=%b, c=%b, r=%b, v=%b, x=%b, a=%b" + i p s c r v x a +#endif + if p && c && s && r && v && x && a then +#if DEBUG + printfn "[Success] maps: %A, pref: %A, rex: %A, vex: %A\nIdx:%d\n%A" + phlp.OpcodeClass phlp.Prefixes phlp.REXPrefix phlp.VEXInfo i insCore +#endif + idx <- i + else () + i <- i + 1 + if idx = -1 then +#if DEBUG + printfn "Fail: find sub index\n maps: %A, pref: %A, rex: %A, vex: %A" + phlp.OpcodeClass phlp.Prefixes phlp.REXPrefix phlp.VEXInfo + Array.iteri (printfn "[%d] %A") ins +#endif + failwithf "No matching instruction format." + else () + idx + + /// Returns the RegType size for a FixedImm operand inferred from the + /// surrounding operand size array. + let getFixedImmSize = function + | [| Some 8; None |] -> 8 + | [| Some 16; None |] -> 16 + | [| Some 32; None |] -> 32 + | [| Some 64; None |] -> 64 + | _ -> 0 // Temp + + /// Writes addrSz, regSz, and memSz into the parsing-helper context for use by + /// subsequent operand parsers. + let setupOprContext (phlp: ParsingHelper) addrSz regSz memSz = + phlp.MemEffOprSize <- memSz + phlp.MemEffAddrSize <- addrSz + phlp.MemEffRegSize <- regSz + phlp.RegSize <- regSz + phlp.OperationSize <- regSz + + /// Calls setupOprContext with the effective address size derived from the + /// current prefix/mode state. + let setupOprContextWithEffAddr (phlp: ParsingHelper) regSz memSz = + let effAddrSz = ParsingHelper.GetEffAddrSize phlp + setupOprContext phlp effAddrSz regSz memSz + + /// Returns the SzCond for a standalone immediate operand. + /// PUSH/POP use D64; all others use Normal. + let getImmSzCond = function + | Opcode.POP | Opcode.PUSH -> SzCond.D64 + | _ -> SzCond.Normal + + /// Returns true when the opcode has a sign-extending immediate encoding. + let supportsSignExtendedImmediate = function + | Opcode.ADC | Opcode.ADD | Opcode.AND | Opcode.CMP | Opcode.IMUL + | Opcode.MOV | Opcode.OR | Opcode.SBB | Opcode.SUB | Opcode.TEST + | Opcode.XOR | Opcode.PUSH -> true + | _ -> false + + /// Returns true when the immediate is narrower than the effective operand + /// width and must be sign-extended (includes PUSH imm8). + let hasSignExtendedImmediateSizeMismatch opcode szs = + match szs with + (* Implicit accumulator + imm8; no widening. *) + | [| None; Some 8 |] -> false + (* PUSH imm8 is sign-extended to the stack operand width. *) + | [| Some _ |] when opcode = Opcode.PUSH -> true + (* Single-size operand shape; no sign-extension case. *) + | [| None |] | [| Some _ |] -> false + | _ -> true + + let getVVVVBit vexInfo = + match vexInfo with + | Some v -> int v.VVVV + | None -> failwith "VEXInfo is required to get VVVV bits." + + /// Parses one operand descriptor into a concrete Operand value and updates + /// the context so subsequent operands derive the correct width. + let parseOperand span (phlp: ParsingHelper) szs modRM (ic: InstructionCore) o + = + // FIXME: need operand size determination logic + match o with + | RM sz -> + setupOprContextWithEffAddr phlp sz sz + OperandParsers.parseMemOrReg modRM span phlp + | RMdiff(regSz, memSz) -> + setupOprContextWithEffAddr phlp regSz memSz + OperandParsers.parseMemOrReg modRM span phlp + | RMBcst(regSz, memSz, bcstSz) -> + setupOprContextWithEffAddr phlp regSz memSz + OperandParsers.parseMemOrReg modRM span phlp + | RMEr(regSz, memSz) | RMSae(regSz, memSz) -> + setupOprContextWithEffAddr phlp regSz memSz + OperandParsers.parseMemOrReg modRM span phlp + | RMBcstEr(regSz, memSz, _) | RMBcstSae(regSz, memSz, _) -> + setupOprContextWithEffAddr phlp regSz memSz + OperandParsers.parseMemOrReg modRM span phlp + | Reg(sz, OprRegType.OpRd) -> (* Opcode[2:0] contains the operand. *) + setupOprContextWithEffAddr phlp sz sz + let regBit = Operands.getRM (uint8 ic.OpcodeByte) + OperandParsers.getOprFromRegGrpREX regBit phlp + | Reg(sz, oprRegType) -> + setupOprContextWithEffAddr phlp sz sz + match oprRegType with + | OprRegType.OpRd -> + let regBit = Operands.getRM (uint8 ic.OpcodeByte) + OperandParsers.getOprFromRegGrpREX regBit phlp + | OprRegType.VVVV -> OperandParsers.parseVVVVReg phlp + | OprRegType.RMBit -> + OperandParsers.findRegRmAndSIBBase phlp.MemEffRegSize phlp.REXPrefix + (Operands.getRM modRM) |> OprReg + | OprRegType.RegBit -> + OperandParsers.findRegRBits sz phlp.REXPrefix (Operands.getReg modRM) + |> OprReg + | OprRegType.IS4 -> + let regBit = phlp.ReadByte span >>> 4 &&& 0b1111uy |> int + OperandParsers.findRegRBits sz phlp.REXPrefix regBit |> OprReg + | OprRegType.Unused -> failwith "Unused OprRegType." (* FixedReg *) + | RegSae sz -> + setupOprContextWithEffAddr phlp sz sz + OperandParsers.findRegRBits sz phlp.REXPrefix (Operands.getReg modRM) + |> OprReg + | Mem 0 when ic.Opcode = Opcode.LDDQU -> + setupOprContextWithEffAddr phlp 128 128 + OperandParsers.parseMemory modRM span phlp + | Mem 0 -> + let effAddrSz = ParsingHelper.GetEffAddrSize phlp + let effOprSz = ParsingHelper.GetEffOprSize(phlp, SzCond.Normal) + setupOprContext phlp effAddrSz effOprSz effOprSz + OperandParsers.parseMemory modRM span (phlp: ParsingHelper) + | Mem sz -> + setupOprContextWithEffAddr phlp sz sz + OperandParsers.parseMemory modRM span phlp + | Imm sz -> + let szCond = getImmSzCond ic.Opcode + let effAddrSz = ParsingHelper.GetEffAddrSize phlp + let effOprSz = ParsingHelper.GetEffOprSize(phlp, szCond) + setupOprContext phlp effAddrSz effOprSz effOprSz + if supportsSignExtendedImmediate ic.Opcode + && hasSignExtendedImmediateSizeMismatch ic.Opcode szs then + OperandParsers.parseOprSImm span phlp sz + else OperandParsers.parseOprImm span phlp sz + | Rel sz -> + let effAddrSz = ParsingHelper.GetEffAddrSize phlp + let effOprSz = ParsingHelper.GetEffOprSize(phlp, SzCond.F64) + setupOprContext phlp effAddrSz effOprSz effOprSz + OperandParsers.parseOprForRelJmp span phlp sz + | FixedReg reg -> + let sz = Register.toRegType phlp.WordSize reg + setupOprContextWithEffAddr phlp sz sz + OprReg reg + | STReg None -> Operands.getRM modRM |> Operands.getSTReg + | STReg(Some reg) -> OprReg reg + | BM sz -> + if Operands.modIsReg modRM then + OperandParsers.parseBoundRegister (Operands.getRM modRM) + else + setupOprContextWithEffAddr phlp sz sz + OperandParsers.parseMemory modRM span phlp + | BndReg -> OperandParsers.parseBoundRegister (Operands.getReg modRM) + | OpMaskReg oprRegType -> + let regBit = + match oprRegType with + | RegBit -> Operands.getReg modRM + | RMBit -> Operands.getRM modRM + | VVVV -> getVVVVBit phlp.VEXInfo + | _ -> failwith "Invalid OprRegType for OpMaskReg." + OperandParsers.parseOpMaskReg regBit + | KM sz -> + setupOprContextWithEffAddr phlp sz sz + if Operands.modIsReg modRM then + OperandParsers.parseOpMaskReg (Operands.getRM modRM) + else + OperandParsers.parseMemory modRM span phlp + | MMXReg oprRegType -> + let regBit = + match oprRegType with + | RegBit -> Operands.getReg modRM + | RMBit -> Operands.getRM modRM + | _ -> failwith "Invalid OprRegType for MMXReg." + OperandParsers.parseMMXReg regBit + | MM sz -> + if Operands.modIsReg modRM then + OperandParsers.parseMMXReg (Operands.getRM modRM) + else + setupOprContextWithEffAddr phlp sz sz + OperandParsers.parseMemory modRM span phlp + | FixedImm imm -> OprImm(int64 imm, getFixedImmSize szs) + | Moffs sz -> + setupOprContextWithEffAddr phlp sz sz + OperandParsers.parseOprOnlyDisp span phlp + | CtrlReg -> + let r = Operands.getReg modRM + let r = if REXPrefix.hasR phlp.REXPrefix then r + 8 else r + OperandParsers.parseControlReg r + | DebugReg -> OperandParsers.parseDebugReg (Operands.getReg modRM) + | RegAddr -> + let sz = ParsingHelper.GetEffAddrSize phlp + setupOprContextWithEffAddr phlp sz sz + if isOpcodeGroupExtension ic.ModRM then + let rm = Operands.getRM modRM + OperandParsers.findRegRmAndSIBBase sz phlp.REXPrefix rm |> OprReg + else + let reg = Operands.getReg modRM + OperandParsers.findRegRBits sz phlp.REXPrefix reg |> OprReg + | Sreg -> OperandParsers.parseSegReg (Operands.getReg modRM) + | Far sz -> // XXX + let effAddrSz = ParsingHelper.GetEffAddrSize phlp + let effOprSz = ParsingHelper.GetEffOprSize(phlp, SzCond.Normal) + let struct (regSz, oprSz) = + if sz = 16 then struct (16, 32) + elif sz = 32 then struct (32, 48) + else struct (64, 80) + phlp.MemEffOprSize <- oprSz + phlp.MemEffAddrSize <- effAddrSz + phlp.MemEffRegSize <- regSz + phlp.RegSize <- effOprSz + (* Far ptr: OperationSize holds total ptr size *) + phlp.OperationSize <- oprSz + let addrSz = RegType.toByteWidth phlp.MemEffAddrSize + let addrValue = OperandParsers.parseUnsignedImm span phlp addrSz + let selector = phlp.ReadInt16 span + let absAddr = Absolute(selector, addrValue, RegType.fromByteWidth addrSz) + OprDirAddr absAddr + | Unknown s -> + failwithf "Need unknown operand type handling logic: %s" s + | o -> + failwithf "Unsupported operand type: %A" o + + /// Wraps a concrete operand array into the Operands discriminated union + /// (NoOperand / OneOperand / … / FourOperands). + let buildOperands = function + | [||] -> Operands.NoOperand + | [| op1 |] -> Operands.OneOperand(op1) + | [| op1; op2 |] -> Operands.TwoOperands(op1, op2) + | [| op1; op2; op3 |] -> Operands.ThreeOperands(op1, op2, op3) + | [| op1; op2; op3; op4 |] -> Operands.FourOperands(op1, op2, op3, op4) + | _ -> failwith "Invalid number of operands." + + /// Reads the ModRM byte if required, then parses all operand descriptors + /// and returns the assembled Operands value. + let parseAllOperands span (phlp: ParsingHelper) (ic: InstructionCore) = + let modRM = + match ic.ModRM with + | ModRMType.NoModRM when ic.OpEn = OpEn.M -> + phlp.ReadByte span (* SETcc *) + | ModRMType.NoModRM when ic.OpEn = OpEn.None -> + phlp.ReadByte span (* Escape Opcode *) + | ModRMType.NoModRM -> 0uy + | _ -> phlp.ReadByte span (* all other ModRM, including FixedModRM *) + match ic.Operands with + | [| NoOpr |] -> Operands.NoOperand + | _ -> + let operands = Array.zeroCreate ic.Operands.Length + let szs = collectDistinctOpSizes ic.Operands + for i = 0 to ic.Operands.Length - 1 do + let opr = ic.Operands[i] + operands[i] <- parseOperand span phlp szs modRM ic opr + operands |> buildOperands + + /// Removes the prefix from the set when the matched instruction consumed + /// it as an opcode selector rather than a plain prefix. + let consumePrefixIfNeeded phlp insCore = + if shouldConsumePrefix phlp insCore then + phlp.Prefixes <- filterPrefs phlp.Prefixes + else () member _.SetDisassemblySyntax syntax = match syntax with @@ -557,6 +614,37 @@ type IntelParser(wordSz, reader) = pos + 1 else pos + member inline private _.ParseVEX(bs: ByteSpan, pos, rex: REXPrefix byref, + vex: VEXInfo option byref) = + match bs[pos] with + | 0xC5uy when bs[pos + 1] < 0xC0uy && wordSz <> WordSize.Bit64 -> + pos + | 0xC5uy -> + vex <- Some(getTwoVEXInfo bs &rex (pos + 1)) + pos + 2 + | 0xC4uy when bs[pos + 1] < 0xC0uy && wordSz <> WordSize.Bit64 -> + pos + | 0xC4uy -> + vex <- Some(getThreeVEXInfo bs &rex (pos + 1)) + pos + 3 + | 0x62uy -> + vex <- Some(getEVEXInfo bs &rex (pos + 1)) + pos + 4 + | 0x0Fuy -> + match bs[pos + 1] with + | 0x38uy -> + phlp.OpcodeClass <- OpcodeClass.Normal ThreeBytes38 + pos + 2 + | 0x3Auy -> + phlp.OpcodeClass <- OpcodeClass.Normal ThreeBytes3A + pos + 2 + | _ -> + phlp.OpcodeClass <- OpcodeClass.Normal TwoBytes + pos + 1 + | _ -> + phlp.OpcodeClass <- OpcodeClass.Normal OneByte + pos + interface IInstructionParsable with member _.MaxInstructionSize = 15 @@ -565,14 +653,61 @@ type IntelParser(wordSz, reader) = member this.Parse(span: ByteSpan, addr) = let mutable rex = REXPrefix.NOREX + let mutable vex = None let prefEndPos = this.ParsePrefix span - let nextPos = this.ParseREX(span, prefEndPos, &rex) + let rexEndPos = this.ParseREX(span, prefEndPos, &rex) + let nextPos = this.ParseVEX(span, rexEndPos, &rex, &vex) phlp.VEXInfo <- None phlp.IsFar <- false phlp.InsAddr <- addr phlp.REXPrefix <- rex + phlp.VEXInfo <- vex phlp.CurrPos <- nextPos #if LCACHE phlp.MarkPrefixEnd(prefEndPos) #endif - oneByteParsers[int (phlp.ReadByte span)].Run(span, phlp) :> IInstruction + let insCores = + match phlp.VEXInfo with + | Some vInfo -> + match vInfo.VEXType with + | v when v &&& VEXType.EVEX = VEXType.EVEX -> + match vInfo.VEXType &&& (~~~VEXType.EVEX) with + | VEXType.TwoByteOp -> + phlp.OpcodeClass <- OpcodeClass.EVEX TwoBytes + InstructionArrays.evexTwo[int (phlp.ReadByte span)] + | VEXType.ThreeByteOpOne -> + phlp.OpcodeClass <- OpcodeClass.EVEX ThreeBytes38 + InstructionArrays.evexThree38[int (phlp.ReadByte span)] + | VEXType.ThreeByteOpTwo -> + phlp.OpcodeClass <- OpcodeClass.EVEX ThreeBytes3A + InstructionArrays.evexThree3A[int (phlp.ReadByte span)] + | _ -> raise ParsingFailureException + | VEXType.TwoByteOp -> + phlp.OpcodeClass <- OpcodeClass.VEX TwoBytes + InstructionArrays.vexTwo[int (phlp.ReadByte span)] + | VEXType.ThreeByteOpOne -> + phlp.OpcodeClass <- OpcodeClass.VEX ThreeBytes38 + InstructionArrays.vexThree38[int (phlp.ReadByte span)] + | VEXType.ThreeByteOpTwo -> + phlp.OpcodeClass <- OpcodeClass.VEX ThreeBytes3A + InstructionArrays.vexThree3A[int (phlp.ReadByte span)] + | _ -> raise ParsingFailureException + | None -> + match phlp.OpcodeClass with + | OpcodeClass.Normal ThreeBytes38 -> + InstructionArrays.norThree38[int (phlp.ReadByte span)] + | OpcodeClass.Normal ThreeBytes3A -> + InstructionArrays.norThree3A[int (phlp.ReadByte span)] + | OpcodeClass.Normal TwoBytes -> + InstructionArrays.norTwo[int (phlp.ReadByte span)] + | _ -> InstructionArrays.norOne[int (phlp.ReadByte span)] + let subIdx = selectInstrVariant span phlp insCores +#if DEBUG + //printfn "\nSelected InstructionCore(%d)\n%A\nOpcode Class: %A" + // subIdx insCores[subIdx] phlp.OpcodeClass +#endif + let insCore = insCores[subIdx] + phlp.TupleType <- insCore.TupleType + let operands = parseAllOperands span phlp insCore + consumePrefixIfNeeded phlp insCore + newInstruction phlp insCore.Opcode operands :> IInstruction diff --git a/src/FrontEnd/Intel/ParsingFunctions.fs b/src/FrontEnd/Intel/ParsingFunctions.fs index 5049dc10..0f7a99bf 100644 --- a/src/FrontEnd/Intel/ParsingFunctions.fs +++ b/src/FrontEnd/Intel/ParsingFunctions.fs @@ -6514,763 +6514,11 @@ let getInstr prefix fnInstr = fnInstr (getMandPrx prefix) /// The main instruction rendering function. let render span phlp opcode szCond (oidx: OD) (sidx: SizeKind) = - match sidx with - | SizeKind.VecDefRC -> - (phlp: ParsingHelper).SzComputers[int sidx].RenderEVEX(span, phlp, szCond) - | _ -> (phlp: ParsingHelper).SzComputers[int sidx].Render(phlp, szCond) - exceptionHandling opcode phlp - let oprs = phlp.OprParsers[int oidx].Render(span, phlp) - newInstruction phlp opcode oprs - -/// Parse group Opcodes: Vol.2C A-19 Table A-6. Opcode Extensions for One- and -/// Two-byte Opcodes by Group Number. -let parseGrpOp span phlp grp oidx sidx = - let struct (op, oidx, szidx, szCond) = parseGrpOpKind span phlp oidx sidx grp - if Opcode.isBranch op then addBND phlp |> ignore - elif Opcode.isCETInstr op then - phlp.Prefixes <- Prefix.ClearGrp1PrefMask &&& phlp.Prefixes - else () - render span phlp op szCond oidx szidx - -/// Normal/VEX -let parseVEX span (phlp: ParsingHelper) fnNor fnVex = - match phlp.VEXInfo with - | None -> - let struct (op, oidx, sidx, _) = fnNor (getMandPrx phlp.Prefixes) - phlp.Prefixes <- filterPrefs phlp.Prefixes - render span phlp op SzCond.Normal oidx sidx - | Some v -> - let struct (op, oidx, sidx, _) = fnVex (getMandPrx v.VPrefixes) - render span phlp op SzCond.Normal oidx sidx - -/// Select Normal(REX.W), VEX(REX.W) -let selectVEXW (span: ByteSpan) phlp fnNorW0 fnNorW1 fnVexW0 fnVexW1 = - match (phlp: ParsingHelper).VEXInfo with - | None -> - let fnNor = if REXPrefix.hasW phlp.REXPrefix then fnNorW1 else fnNorW0 - let ins = getInstr phlp.Prefixes fnNor - phlp.Prefixes <- filterPrefs phlp.Prefixes - ins - | Some v -> - let fnVex = if REXPrefix.hasW phlp.REXPrefix then fnVexW1 else fnVexW0 - getInstr v.VPrefixes fnVex - -/// Normal(REX.W)/VEX(REX.W) -let parseVEXW span phlp fnNorW0 fnNorW1 fnVexW0 fnVexW1 = - let struct (op, oidx, sidx, _) = - selectVEXW span phlp fnNorW0 fnNorW1 fnVexW0 fnVexW1 - render span phlp op SzCond.Normal oidx sidx - -/// Select Normal, VEX, EVEX(REX.W) -let selectEVEX (phlp: ParsingHelper) fnNor fnVex fnEVexW0 fnEVexW1 = - match phlp.VEXInfo with - | None -> - let ins = getInstr phlp.Prefixes fnNor - phlp.Prefixes <- filterPrefs phlp.Prefixes - ins - | Some v -> - if v.VEXType &&& VEXType.EVEX = VEXType.EVEX then - let fnEVex = if REXPrefix.hasW phlp.REXPrefix then fnEVexW1 else fnEVexW0 - getInstr v.VPrefixes fnEVex - else getInstr v.VPrefixes fnVex - -/// Normal/VEX/EVEX(REX.W) -let parseEVEX span phlp fnNor fnVex fnEVexW0 fnEVexW1 = - let struct (op, oidx, sidx, tt) = - selectEVEX phlp fnNor fnVex fnEVexW0 fnEVexW1 - phlp.TupleType <- tt - render span phlp op SzCond.Normal oidx sidx - -/// Select VEX(REX.W), EVEX(REX.W) -let selectEVEXW (phlp: ParsingHelper) fnVexW0 fnVexW1 fnEVexW0 fnEVexW1 = - match phlp.VEXInfo with - | None -> raise ParsingFailureException - | Some v -> - if v.VEXType &&& VEXType.EVEX = VEXType.EVEX then - let fnEVex = if REXPrefix.hasW phlp.REXPrefix then fnEVexW1 else fnEVexW0 - getInstr v.VPrefixes fnEVex - else - let fnVex = if REXPrefix.hasW phlp.REXPrefix then fnVexW1 else fnVexW0 - getInstr v.VPrefixes fnVex - -/// VEX(REX.W)/EVEX(REX.W) -let parseEVEXW span phlp fnVexW0 fnVexW1 fnEVexW0 fnEVexW1 = - let struct (op, oidx, sidx, tt) = - selectEVEXW phlp fnVexW0 fnVexW1 fnEVexW0 fnEVexW1 - phlp.TupleType <- tt - render span phlp op SzCond.Normal oidx sidx - -/// Select Normal(REX.W), VEX(REX.W), EVEX(REX.W) -let selectEVEXAll (phlp: ParsingHelper) fnNorW0 fnNorW1 fnVexW0 fnVexW1 fnEVexW0 - fnEVexW1 = - match (phlp: ParsingHelper).VEXInfo with - | None -> - let fnNor = if REXPrefix.hasW phlp.REXPrefix then fnNorW1 else fnNorW0 - let ins = getInstr phlp.Prefixes fnNor - phlp.Prefixes <- filterPrefs phlp.Prefixes - ins - | Some v -> - if v.VEXType &&& VEXType.EVEX = VEXType.EVEX then - let fnEVex = if REXPrefix.hasW phlp.REXPrefix then fnEVexW1 else fnEVexW0 - getInstr v.VPrefixes fnEVex - else - let fnVex = if REXPrefix.hasW phlp.REXPrefix then fnVexW1 else fnVexW0 - getInstr v.VPrefixes fnVex - -/// Normal(REX.W)/VEX(REX.W)/EVEX(REX.W) -let parseEVEXAll span phlp fnNorW0 fnNorW1 fnVexW0 fnVexW1 fnEVexW0 fnEVexW1 = - let struct (op, oidx, sidx, tt) = - selectEVEXAll phlp fnNorW0 fnNorW1 fnVexW0 fnVexW1 fnEVexW0 fnEVexW1 - phlp.TupleType <- tt - render span phlp op SzCond.Normal oidx sidx - -/// Parse non-VEX instructions. -let parseNonVEX span (phlp: ParsingHelper) fnNor = - let struct (op, oidx, sidx, _) = getInstr phlp.Prefixes fnNor - phlp.Prefixes <- filterPrefs phlp.Prefixes - render span phlp op SzCond.Normal oidx sidx - -/// Parse non-VEX instructions. -let pVEXByMem span (phlp: ParsingHelper) fnNorM fnNorR fnVexM fnVexR = - let struct (fnNor, fnVex) = - if phlp.PeekByte span |> Operands.modIsMemory then struct (fnNorM, fnVexM) - else struct (fnNorR, fnVexR) - parseVEX span phlp fnNor fnVex - -/// Parse BND-related instructions. -let parseBND span (phlp: ParsingHelper) szCond fnBND = - let struct (op, oidx, sidx, _) = getInstr phlp.Prefixes fnBND - phlp.Prefixes <- filterPrefs phlp.Prefixes - render span phlp op szCond oidx sidx - -let parseCETInstr span (phlp: ParsingHelper) = - let struct (op, oidx, sidx, _) = - match phlp.PeekByte span with - | 0xFAuy -> phlp.IncPos(); struct (ENDBR64, OD.No, SZ.Def, TT.NA) - | 0xFBuy -> phlp.IncPos(); struct (ENDBR32, OD.No, SZ.Def, TT.NA) - | b when Operands.getReg b = 0b001 && Operands.getMod b = 0b11 -> - let op = if REXPrefix.hasW phlp.REXPrefix then RDSSPQ else RDSSPD - struct (op, OD.Gpr, SZ.Def, TT.NA) - | _ -> raise InvalidOpcodeException - phlp.Prefixes <- Prefix.ClearGrp1PrefMask &&& phlp.Prefixes - render span phlp op SzCond.Normal oidx sidx - -let parsePadLockInstr1 span (phlp: ParsingHelper) = - let opcode = - match phlp.PeekByte span with - | 0xC0uy -> - phlp.IncPos() - if Prefix.hasREPNZ phlp.Prefixes then - phlp.Prefixes <- Prefix.ClearGrp1PrefMask &&& phlp.Prefixes - SM2 - else MONTMUL - | 0xC8uy -> phlp.IncPos(); XSHA1 - | 0xD0uy -> phlp.IncPos(); XSHA256 - | 0xD8uy -> phlp.IncPos(); XSHA384 - | 0xE0uy -> phlp.IncPos(); XSHA512 - | 0xE8uy -> - phlp.IncPos() - phlp.Prefixes <- Prefix.ClearGrp1PrefMask &&& phlp.Prefixes - CCS_HASH - | 0xF0uy -> phlp.IncPos(); MONTMUL2 - | 0xF8uy -> phlp.IncPos(); XMODEXP - | _ -> raise InvalidOpcodeException - render span phlp opcode SzCond.Normal OD.No SZ.Def - -let parsePadLockInstr2 span (phlp: ParsingHelper) = - let opcode = - match phlp.PeekByte span with - | 0xC0uy -> phlp.IncPos(); XSTORERNG - | 0xC8uy -> phlp.IncPos(); XCRYPTECB - | 0xD0uy -> phlp.IncPos(); XCRYPTCBC - | 0xD8uy -> phlp.IncPos(); XCRYPTCTR - | 0xE0uy -> phlp.IncPos(); XCRYPTCFB - | 0xE8uy -> phlp.IncPos(); XCRYPTOFB - | 0xF0uy -> - phlp.IncPos() - phlp.Prefixes <- Prefix.ClearGrp1PrefMask &&& phlp.Prefixes - CCS_ENCRYPT - | 0xF8uy -> phlp.IncPos(); XRNG2 - | _ -> raise InvalidOpcodeException - render span phlp opcode SzCond.Normal OD.No SZ.Def - -/// When the first two bytes are 0F38. -/// Table A-4 of Volume 2 (Three-byte Opcode Map : First Two Bytes are 0F 38H) -let parseThreeByteOp1 span (phlp: ParsingHelper) = - match phlp.ReadByte span with - | 0x00uy -> parseVEX span phlp nor0F3800 vex0F3800 - | 0x01uy -> parseVEX span phlp nor0F3801 vex0F3801 - | 0x02uy -> parseVEX span phlp nor0F3802 vex0F3802 - | 0x03uy -> parseVEX span phlp nor0F3803 vex0F3803 - | 0x04uy -> parseEVEX span phlp nor0F3804 vex0F3804 notEn notEn - | 0x05uy -> parseVEX span phlp nor0F3805 vex0F3805 - | 0x06uy -> parseVEX span phlp nor0F3806 vex0F3806 - | 0x07uy -> parseVEX span phlp nor0F3807 vex0F3807 - | 0x08uy -> parseVEX span phlp nor0F3808 vex0F3808 - | 0x09uy -> parseVEX span phlp nor0F3809 vex0F3809 - | 0x0auy -> parseVEX span phlp nor0F380A vex0F380A - | 0x0buy -> parseVEX span phlp nor0F380B vex0F380B - | 0x0cuy -> parseEVEXW span phlp vex0F380CW0 notEn notEn notEn - | 0x0duy -> parseEVEXW span phlp vex0F380DW0 notEn notEn notEn - | 0x0euy -> parseEVEXW span phlp vex0F380EW0 notEn notEn notEn - | 0x0fuy -> parseEVEXW span phlp vex0F380FW0 notEn notEn notEn - | 0x10uy -> parseVEX span phlp nor0F3810 notEn - | 0x13uy -> parseEVEXW span phlp vex0F3813W0 notEn notEn notEn - | 0x14uy -> parseEVEX span phlp nor0F3814 notEn evex0F3814W0 evex0F3814W1 - | 0x15uy -> parseVEX span phlp nor0F3815 notEn - | 0x16uy -> parseVEXW span phlp notEn notEn vex0F3816W0 notEn - | 0x17uy -> parseVEX span phlp nor0F3817 vex0F3817 - | 0x18uy -> parseEVEXW span phlp vex0F3818W0 notEn evex0F3818W0 notEn - | 0x19uy -> parseEVEXW span phlp vex0F3819W0 notEn notEn evex0F3819W1 - | 0x1auy -> parseVEXW span phlp notEn notEn vex0F381AW0 notEn - | 0x1cuy -> parseVEX span phlp nor0F381C vex0F381C - | 0x1duy -> parseVEX span phlp nor0F381D vex0F381D - | 0x1euy -> parseVEX span phlp nor0F381E vex0F381E - | 0x1fuy -> parseEVEXW span phlp notEn notEn notEn evex0F381FW1 - | 0x20uy -> parseVEX span phlp nor0F3820 vex0F3820 - | 0x21uy -> parseVEX span phlp nor0F3821 vex0F3821 - | 0x22uy -> parseVEX span phlp nor0F3822 vex0F3822 - | 0x23uy -> parseVEX span phlp nor0F3823 vex0F3823 - | 0x24uy -> parseVEX span phlp nor0F3824 vex0F3824 - | 0x25uy -> parseEVEX span phlp nor0F3825 vex0F3825 evex0F3825W0 notEn - | 0x26uy -> parseEVEX span phlp notEn notEn evex0F3826W0 notEn - | 0x28uy -> parseVEX span phlp nor0F3828 vex0F3828 - | 0x29uy -> parseVEX span phlp nor0F3829 vex0F3829 - | 0x2auy -> parseEVEX span phlp nor0F382A vex0F382A notEn evex0F382AW1 - | 0x2buy -> parseVEX span phlp nor0F382B vex0F382B - | 0x2cuy -> parseEVEXW span phlp vex0F382CW0 notEn evex0F382CW0 evex0F382CW1 - | 0x2duy -> parseEVEXW span phlp vex0F382DW0 notEn evex0F382DW0 evex0F382DW1 - | 0x2euy -> parseVEXW span phlp notEn notEn vex0F382EW0 notEn - | 0x2fuy -> parseVEXW span phlp notEn notEn vex0F382FW0 notEn - | 0x30uy -> parseEVEX span phlp nor0F3830 vex0F3830 evex0F3830 evex0F3830 - | 0x31uy -> parseVEX span phlp nor0F3831 vex0F3831 - | 0x32uy -> parseVEX span phlp nor0F3832 vex0F3832 - | 0x33uy -> parseEVEX span phlp nor0F3833 vex0F3833 evex0F3833 evex0F3833 - | 0x34uy -> parseVEX span phlp nor0F3834 vex0F3834 - | 0x35uy -> parseEVEX span phlp nor0F3835 vex0F3835 evex0F3835W0 notEn - | 0x36uy -> parseEVEXW span phlp vex0F3836W0 notEn notEn evex0F3836W1 - | 0x37uy -> parseVEX span phlp nor0F3837 vex0F3837 - | 0x38uy -> parseVEX span phlp nor0F3838 vex0F3838 - | 0x39uy -> parseEVEX span phlp nor0F3839 vex0F3839 evex0F3839W0 notEn - | 0x3auy -> parseEVEX span phlp nor0F383A vex0F383A evex0F383AW0 notEn - | 0x3buy -> parseVEX span phlp nor0F383B vex0F383B - | 0x3cuy -> parseVEX span phlp nor0F383C vex0F383C - | 0x3duy -> parseVEX span phlp nor0F383D vex0F383D - | 0x3euy -> parseVEX span phlp nor0F383E vex0F383E - | 0x3fuy -> parseVEX span phlp nor0F383F vex0F383F - | 0x40uy -> parseVEX span phlp nor0F3840 vex0F3840 - | 0x41uy -> parseVEX span phlp nor0F3841 vex0F3841 - | 0x43uy -> parseEVEXW span phlp notEn notEn notEn evex0F3843W1 - | 0x45uy -> parseEVEXW span phlp vex0F3845W0 vex0F3845W1 notEn notEn - | 0x46uy -> parseEVEXW span phlp vex0F3846W0 notEn notEn notEn - | 0x47uy -> parseEVEXW span phlp vex0F3847W0 vex0F3847W1 notEn notEn - | 0x4Duy -> parseEVEXW span phlp notEn notEn notEn evex0F384DW1 - | 0x50uy -> parseEVEXW span phlp vex0F3850W0 notEn evex0F3850W0 notEn - | 0x51uy -> parseEVEXW span phlp vex0F3851W0 notEn evex0F3851W0 notEn - | 0x52uy -> parseEVEXW span phlp vex0F3852W0 notEn evex0F3852W0 notEn - | 0x53uy -> parseEVEXW span phlp vex0F3853W0 notEn evex0F3853W0 notEn - | 0x54uy -> parseEVEXW span phlp notEn notEn evex0F3854W0 evex0F3854W1 - | 0x55uy -> parseEVEXW span phlp notEn notEn evex0F3855W0 evex0F3855W1 - | 0x58uy -> parseEVEXW span phlp vex0F3858W0 notEn evex0F3858W0 notEn - | 0x59uy -> parseEVEXW span phlp vex0F3859W0 notEn evex0F3859W0 evex0F3859W1 - | 0x5Auy -> parseEVEXW span phlp vex0F385AW0 notEn evex0F385AW0 evex0F385AW1 - | 0x5Buy -> parseEVEXW span phlp notEn notEn evex0F385BW0 evex0F385BW1 - | 0x62uy -> parseEVEXW span phlp notEn notEn evex0F3862W0 evex0F3862W1 - | 0x63uy -> parseEVEXW span phlp notEn notEn evex0F3863W0 evex0F3863W1 - | 0x68uy -> parseEVEXW span phlp notEn notEn evex0F3868W0 evex0F3868W1 - | 0x70uy -> parseEVEXW span phlp notEn notEn notEn evex0F3870W1 - | 0x71uy -> parseEVEXW span phlp notEn notEn evex0F3871W0 evex0F3871W1 - | 0x72uy -> parseEVEXW span phlp notEn notEn evex0F3872W0 evex0F3872W1 - | 0x73uy -> parseEVEXW span phlp notEn notEn evex0F3873W0 evex0F3873W1 - | 0x75uy -> parseEVEXW span phlp notEn notEn notEn evex0F3875W1 - | 0x76uy -> parseEVEXW span phlp notEn notEn evex0F3876W0 notEn - | 0x77uy -> parseEVEXW span phlp notEn notEn notEn evex0F3877W1 - | 0x78uy -> parseVEX span phlp nor0F3878 vex0F3878 - | 0x79uy -> parseEVEXW span phlp vex0F3879W0 notEn evex0F3879W0 notEn - | 0x7Auy -> parseEVEXW span phlp notEn notEn evex0F387AW0 notEn - | 0x7Buy -> parseEVEXW span phlp notEn notEn evex0F387BW0 notEn - | 0x7Cuy -> parseEVEXW span phlp notEn notEn evex0F387CW0 evex0F387CW1 - | 0x7Duy -> parseEVEXW span phlp notEn notEn evex0F387DW0 evex0F387DW1 - | 0x7Euy -> parseEVEXW span phlp notEn notEn evex0F387EW0 evex0F387EW1 - | 0x82uy -> parseVEX span phlp nor0F3882 notEn - | 0x83uy -> parseEVEXW span phlp notEn notEn notEn evex0F3883W1 - | 0x8Cuy -> parseVEXW span phlp notEn notEn vex0F388CW0 vex0F388CW1 - | 0x8Duy -> parseEVEXW span phlp notEn notEn evex0F388DW0 notEn - | 0x8Euy -> parseVEXW span phlp notEn notEn vex0F388EW0 vex0F388EW1 - | 0x8Fuy -> parseEVEXW span phlp notEn notEn evex0F388FW0 notEn - | 0x90uy -> parseEVEXW span phlp vex0F3890W0 vex0F3890W1 evex0F3890W0 notEn - | 0x91uy -> parseEVEXW span phlp vex0F3891W0 vex0F3891W1 notEn notEn - | 0x92uy -> parseEVEXW span phlp vex0F3892W0 vex0F3892W1 evex0F3892W0 notEn - | 0x93uy -> parseEVEXW span phlp vex0F3893W0 vex0F3893W1 notEn notEn - | 0x96uy -> - parseEVEXW span phlp vex0F3896W0 vex0F3896W1 evex0F3896W0 evex0F3896W1 - | 0x97uy -> - parseEVEXW span phlp vex0F3897W0 vex0F3897W1 evex0F3897W0 evex0F3897W1 - | 0x98uy -> parseEVEXW span phlp vex0F3898W0 vex0F3898W1 notEn evex0F3898W1 - | 0x99uy -> parseVEXW span phlp notEn notEn vex0F3899W0 vex0F3899W1 - | 0x9Auy -> parseEVEXW span phlp vex0F389AW0 vex0F389AW1 evex0F389AW0 notEn - | 0x9Buy -> parseEVEXW span phlp vex0F389BW0 vex0F389BW1 evex0F389BW0 notEn - | 0x9Cuy -> parseEVEXW span phlp vex0F389CW0 vex0F389CW1 notEn evex0F389CW1 - | 0x9Duy -> parseEVEXW span phlp vex0F389DW0 vex0F389DW1 notEn evex0F389DW1 - | 0x9Euy -> parseEVEXW span phlp vex0F389EW0 vex0F389EW1 notEn notEn - | 0x9Fuy -> parseEVEXW span phlp vex0F389FW0 vex0F389FW1 notEn notEn - | 0xA2uy -> parseEVEXW span phlp notEn notEn evex0F38A2W0 evex0F38A2W1 - | 0xA3uy -> parseEVEXW span phlp notEn notEn evex0F38A3W0 evex0F38A3W1 - | 0xA6uy -> parseEVEXW span phlp vex0F38A6W0 vex0F38A6W1 notEn notEn - | 0xA7uy -> parseEVEXW span phlp vex0F38A7W0 vex0F38A7W1 notEn notEn - | 0xA8uy -> parseEVEXW span phlp vex0F38A8W0 vex0F38A8W1 evex0F38A8W0 notEn - | 0xA9uy -> parseVEXW span phlp notEn notEn vex0F38A9W0 vex0F38A9W1 - | 0xAAuy -> parseEVEXW span phlp vex0F38AAW0 vex0F38AAW1 evex0F38AAW0 notEn - | 0xABuy -> parseEVEXW span phlp vex0F38ABW0 vex0F38ABW1 evex0F38ABW0 notEn - | 0xACuy -> parseEVEXW span phlp vex0F38ACW0 vex0F38ACW1 notEn notEn - | 0xADuy -> parseEVEXW span phlp vex0F38ADW0 vex0F38ADW1 notEn evex0F38ADW1 - | 0xAEuy -> parseEVEXW span phlp vex0F38AEW0 vex0F38AEW1 notEn notEn - | 0xAFuy -> parseEVEXW span phlp vex0F38AFW0 vex0F38AFW1 notEn notEn - | 0xB4uy -> parseEVEXW span phlp notEn notEn notEn evex0F38B4W1 - | 0xB5uy -> parseEVEXW span phlp notEn notEn notEn evex0F38B5W1 - | 0xB6uy -> parseEVEXW span phlp vex0F38B6W0 vex0F38B6W1 notEn evex0F38B8W1 - | 0xB7uy -> parseEVEXW span phlp vex0F38B7W0 vex0F38B7W1 notEn evex0F38B8W1 - | 0xB8uy -> parseEVEXW span phlp vex0F38B8W0 vex0F38B8W1 notEn evex0F38B8W1 - | 0xB9uy -> parseVEXW span phlp notEn notEn vex0F38B9W0 vex0F38B9W1 - | 0xBAuy -> parseEVEXW span phlp vex0F38BAW0 vex0F38BAW1 notEn notEn - | 0xBBuy -> parseEVEXW span phlp vex0F38BBW0 vex0F38BBW1 notEn evex0F38BBW1 - | 0xBCuy -> parseEVEXW span phlp vex0F38BCW0 vex0F38BCW1 notEn evex0F38BCW1 - | 0xBDuy -> parseEVEXW span phlp vex0F38BDW0 vex0F38BDW1 notEn evex0F38BDW1 - | 0xBEuy -> parseEVEXW span phlp vex0F38BEW0 vex0F38BEW1 notEn notEn - | 0xBFuy -> parseEVEXW span phlp vex0F38BFW0 vex0F38BFW1 notEn notEn - | 0xC6uy when ParsingHelper.IsReg001(span, phlp) -> - parseEVEXW span phlp notEn notEn evex0F38C61W0 evex0F38C61W1 - | 0xC6uy when ParsingHelper.IsReg010(span, phlp) -> - parseEVEXW span phlp notEn notEn evex0F38C62W0 evex0F38C62W1 - | 0xC6uy when ParsingHelper.IsReg101(span, phlp) -> - parseEVEXW span phlp notEn notEn evex0F38C65W0 evex0F38C65W1 - | 0xC6uy when ParsingHelper.IsReg110(span, phlp) -> - parseEVEXW span phlp notEn notEn evex0F38C66W0 evex0F38C66W1 - | 0xC7uy when ParsingHelper.IsReg001(span, phlp) -> - parseEVEXW span phlp notEn notEn evex0F38C71W0 evex0F38C71W1 - | 0xC7uy when ParsingHelper.IsReg010(span, phlp) -> - parseEVEXW span phlp notEn notEn evex0F38C72W0 evex0F38C72W1 - | 0xC7uy when ParsingHelper.IsReg101(span, phlp) -> - parseEVEXW span phlp notEn notEn evex0F38C75W0 evex0F38C75W1 - | 0xC7uy when ParsingHelper.IsReg110(span, phlp) -> - parseEVEXW span phlp notEn notEn evex0F38C76W0 evex0F38C76W1 - | 0xC8uy -> parseVEX span phlp nor0F38C8 notEn - | 0xC9uy -> parseVEX span phlp nor0F38C9 notEn - | 0xCAuy -> parseVEX span phlp nor0F38CA notEn - | 0xCBuy -> parseEVEX span phlp nor0F38CB notEn notEn evex0F38CBW1 - | 0xCCuy -> parseVEX span phlp nor0F38CC notEn - | 0xCDuy -> parseEVEX span phlp nor0F38CD notEn notEn evex0F38CDW1 - | 0xCFuy -> parseEVEXW span phlp evex0F38CFW0 notEn evex0F38CFW0 notEn - | 0xDBuy -> parseVEX span phlp nor0F38DB notEn - | 0xDCuy -> parseEVEX span phlp nor0F38DC vex0F38DC evex0F38DC evex0F38DC - | 0xDDuy -> parseEVEX span phlp nor0F38DD vex0F38DD evex0F38DD evex0F38DD - | 0xDEuy -> parseEVEX span phlp nor0F38DE vex0F38DE evex0F38DE evex0F38DE - | 0xDFuy -> parseEVEX span phlp nor0F38DF vex0F38DF evex0F38DF evex0F38DF - | 0xF0uy -> parseNonVEX span phlp nor0F38F0 - | 0xF1uy -> parseNonVEX span phlp nor0F38F1 - | 0xF2uy -> parseVEX span phlp notEn vex0F38F2 - | 0xF3uy -> - if Option.isNone phlp.VEXInfo then raise ParsingFailureException - else parseGrpOp span phlp OpGroup.G17 OD.VvRm SZ.Def - | 0xF5uy -> - parseVEXW span phlp nor0F38F5W0 nor0F38F5W1 vex0F38F5W0 vex0F38F5W1 - | 0xF6uy -> - parseVEXW span phlp nor0F38F6W0 nor0F38F6W1 vex0F38F6W0 vex0F38F6W1 - | 0xF7uy -> parseVEX span phlp nor0F38F7 vex0F38F7 - | _ -> raise ParsingFailureException - -/// When the first two bytes are 0F3A. -/// Table A-5 of Volume 2 (Three-byte Opcode Map : First Two Bytes are 0F 3AH) -let parseThreeByteOp2 span (phlp: ParsingHelper) = - match phlp.ReadByte span with - | 0x00uy -> parseEVEXW span phlp notEn vex0F3A00W1 notEn notEn - | 0x01uy -> parseEVEXW span phlp notEn vex0F3A01W1 notEn notEn - | 0x02uy -> parseEVEXW span phlp vex0F3A02W0 notEn notEn notEn - | 0x03uy -> parseEVEXW span phlp notEn notEn evex0F3A03W0 evex0F3A03W1 - | 0x04uy -> parseEVEXW span phlp vex0F3A04W0 notEn notEn notEn - | 0x05uy -> parseEVEXW span phlp vex0F3A05W0 notEn notEn notEn - | 0x06uy -> parseVEXW span phlp notEn notEn vex0F3A06W0 notEn - | 0x08uy -> parseVEX span phlp nor0F3A08 vex0F3A08 - | 0x09uy -> parseVEX span phlp nor0F3A09 vex0F3A09 - | 0x0Auy -> parseVEX span phlp nor0F3A0A vex0F3A0A - | 0x0Buy -> parseEVEX span phlp nor0F3A0B vex0F3A0B notEn evex0F3A0BW1 - | 0x0Cuy -> parseVEX span phlp nor0F3A0C vex0F3A0C - | 0x0Duy -> parseVEX span phlp nor0F3A0D vex0F3A0D - | 0x0Euy -> parseVEX span phlp nor0F3A0E vex0F3A0E - | 0x0Fuy -> parseVEX span phlp nor0F3A0F vex0F3A0F - | 0x14uy -> parseVEXW span phlp nor0F3A14 nor0F3A14 vex0F3A14W0 notEn - | 0x15uy -> parseVEX span phlp nor0F3A15 vex0F3A15 - | 0x16uy -> - (* VEX.W/EVEX.W in non-64 bit is ignored; the instructions behaves as - if the W0 version is used. *) - if phlp.WordSize = WordSize.Bit64 then () - else phlp.REXPrefix <- filterREXWPrefs phlp.REXPrefix - parseEVEXAll span phlp nor0F3A16W0 nor0F3A16W1 vex0F3A16W0 vex0F3A16W1 - evex0F3A16W0 evex0F3A16W1 - | 0x17uy -> parseEVEX span phlp nor0F3A17 vex0F3A17 notEn notEn - | 0x18uy -> parseEVEXW span phlp vex0F3A18W0 notEn notEn notEn - | 0x19uy -> parseEVEXW span phlp vex0F3A19W0 notEn evex0F3A19W0 evex0F3A19W1 - | 0x1Auy -> parseEVEXW span phlp notEn notEn notEn evex0F3A1AW1 - | 0x1Buy -> parseEVEXW span phlp notEn notEn evex0F3A1BW0 evex0F3A1BW1 - | 0x1Duy -> parseEVEXW span phlp vex0F3A1DW0 notEn notEn notEn - | 0x1Euy -> parseEVEXW span phlp notEn notEn evex0F3A1EW0 evex0F3A1EW1 - | 0x20uy -> parseVEX span phlp nor0F3A20 vex0F3A20 - | 0x21uy -> parseVEX span phlp nor0F3A21 vex0F3A21 - | 0x22uy -> - parseEVEXAll span phlp nor0F3A22W0 nor0F3A22W1 vex0F3A22W0 vex0F3A22W1 - evex0F3A22W0 evex0F3A22W1 - | 0x25uy -> parseEVEXW span phlp notEn notEn evex0F3A25W0 evex0F3A25W1 - | 0x27uy -> parseEVEXW span phlp notEn notEn notEn evex0F3A27W1 - | 0x30uy -> parseVEXW span phlp notEn notEn vex0F3A30W0 vex0F3A30W1 - | 0x31uy -> parseVEXW span phlp notEn notEn vex0F3A31W0 vex0F3A31W1 - | 0x38uy -> parseVEX span phlp nor0F3A38 vex0F3A38 - | 0x39uy -> parseEVEXW span phlp vex0F3A39W0 notEn evex0F3A39W0 evex0F3A39W1 - | 0x3Auy -> parseEVEXW span phlp notEn notEn evex0F3A3AW0 evex0F3A3AW1 - | 0x3Buy -> parseEVEXW span phlp notEn notEn evex0F3A3BW0 evex0F3A3BW1 - | 0x3Euy -> parseEVEXW span phlp notEn notEn evex0F3A3EW0 evex0F3A3EW1 - | 0x3Fuy -> parseEVEXW span phlp notEn notEn evex0F3A3FW0 evex0F3A3FW1 - | 0x40uy -> parseVEX span phlp nor0F3A40 vex0F3A40 - | 0x41uy -> parseVEX span phlp nor0F3A41 vex0F3A41 - | 0x42uy -> parseVEX span phlp nor0F3A42 vex0F3A42 - | 0x43uy -> parseEVEXW span phlp notEn notEn evex0F3A43W0 evex0F3A43W1 - | 0x44uy -> parseEVEX span phlp nor0F3A44 vex0F3A44 evex0F3A44 evex0F3A44 - | 0x46uy -> parseEVEXW span phlp vex0F3A46W0 notEn notEn notEn - | 0x4Auy -> parseVEXW span phlp notEn notEn vex0F3A4AW0 notEn - | 0x4Buy -> parseVEXW span phlp notEn notEn vex0F3A4BW0 notEn - | 0x4Cuy -> parseVEXW span phlp notEn notEn vex0F3A4CW0 notEn - | 0x57uy -> parseEVEXW span phlp notEn notEn notEn evex0F3A57W1 - | 0x60uy -> parseVEX span phlp nor0F3A60 vex0F3A60 - | 0x61uy -> parseVEX span phlp nor0F3A61 vex0F3A61 - | 0x62uy -> parseVEX span phlp nor0F3A62 vex0F3A62 - | 0x63uy -> parseVEX span phlp nor0F3A63 vex0F3A63 - | 0x68uy -> parseVEXW span phlp notEn notEn vex0F3A68W0 vex0F3A68W1 - | 0x69uy -> parseVEXW span phlp notEn notEn vex0F3A69W0 vex0F3A69W1 - | 0x6Auy -> parseVEXW span phlp notEn notEn vex0F3A6AW0 vex0F3A6AW1 - | 0x6Buy -> parseVEXW span phlp notEn notEn vex0F3A6BW0 vex0F3A6BW1 - | 0x70uy -> parseEVEXW span phlp notEn notEn notEn evex0F3A70W1 - | 0x71uy -> parseEVEXW span phlp notEn notEn evex0F3A71W0 evex0F3A71W1 - | 0x72uy -> parseEVEXW span phlp notEn notEn notEn evex0F3A72W1 - | 0x73uy -> parseEVEXW span phlp notEn notEn evex0F3A73W0 evex0F3A73W1 - | 0xCCuy -> parseVEX span phlp nor0F3ACC notEn - | 0xCEuy -> parseEVEXW span phlp notEn vex0F3ACEW1 notEn evex0F3ACEW1 - | 0xCFuy -> parseEVEXW span phlp notEn vex0F3ACFW1 notEn evex0F3ACFW1 - | 0xDFuy -> parseVEX span phlp nor0F3ADF notEn - | 0xF0uy -> parseVEX span phlp nor0F3AF0 vex0F3AF0 - | _ -> raise ParsingFailureException - -let getOpCode0F0D span (phlp: ParsingHelper) = - let b = phlp.PeekByte span - match Operands.modIsMemory b, Operands.getReg b with - | true, 0b001 -> PREFETCHW - | true, 0b010 -> PREFETCHWT1 - | _ -> raise ParsingFailureException - -let ignOpSz (phlp: ParsingHelper) = - phlp.Prefixes <- phlp.Prefixes &&& EnumOfValue 0xFDFF - phlp - -(* Table A-3 of Volume 2 (Two-byte Opcode Map) *) -let parseTwoByteOpcode span (phlp: ParsingHelper) = - match (phlp.ReadByte span) with - | 0x02uy -> - if phlp.VEXInfo.IsSome then raise ParsingFailureException - else render span phlp LAR SzCond.Normal OD.GprRm SZ.WV - | 0x03uy -> render span phlp LSL SzCond.Normal OD.GprRm SZ.WV - | 0x05uy -> -#if !EMULATION - ensure64 phlp -#endif - render span phlp SYSCALL SzCond.Normal OD.No SZ.Def - | 0x06uy -> render span phlp CLTS SzCond.Normal OD.No SZ.Def - | 0x07uy -> -#if !EMULATION - ensure64 phlp -#endif - render span phlp SYSRET SzCond.Normal OD.No SZ.Def - | 0x08uy -> render span phlp INVD SzCond.Normal OD.No SZ.Def - | 0x09uy -> render span phlp WBINVD SzCond.Normal OD.No SZ.Def - | 0x0Buy -> render span phlp UD2 SzCond.Normal OD.No SZ.Def - | 0x0Duy -> - render span phlp (getOpCode0F0D span phlp) SzCond.Normal OD.Mem SZ.Def - | 0x10uy -> pVEXByMem span phlp nor0F10 nor0F10 vex0F10Mem vex0F10Reg - | 0x11uy -> pVEXByMem span phlp nor0F11 nor0F11 vex0F11Mem vex0F11Reg - | 0x12uy -> pVEXByMem span phlp nor0F12Mem nor0F12Reg vex0F12Mem vex0F12Reg - | 0x13uy -> parseVEX span phlp nor0F13 vex0F13 - | 0x14uy -> parseVEX span phlp nor0F14 vex0F14 - | 0x15uy -> parseVEX span phlp nor0F15 vex0F15 - | 0x16uy -> pVEXByMem span phlp nor0F16Mem nor0F16Reg vex0F16Mem vex0F16Reg - | 0x17uy -> parseVEX span phlp nor0F17 vex0F17 - | 0x1Auy -> parseBND span phlp SzCond.Normal nor0F1A - | 0x1Buy -> parseBND span phlp SzCond.Normal nor0F1B - | 0x1Euy -> - if Prefix.hasREPZ phlp.Prefixes then parseCETInstr span phlp - else raise InvalidOpcodeException - | 0x1Fuy -> render span phlp NOP SzCond.Normal OD.Mem SZ.Def (* NOP /0 Ev *) - | 0x20uy -> render span phlp MOV SzCond.F64 OD.GprCtrl SZ.DY - | 0x21uy -> render span phlp MOV SzCond.Normal OD.GprDbg SZ.DY - | 0x22uy -> render span phlp MOV SzCond.Normal OD.CtrlGpr SZ.DY - | 0x23uy -> render span phlp MOV SzCond.Normal OD.DbgGpr SZ.DY - | 0x28uy -> parseVEX span phlp nor0F28 vex0F28 - | 0x29uy -> parseVEX span phlp nor0F29 vex0F29 - | 0x2Auy -> parseVEX span phlp nor0F2A vex0F2A - | 0x2Buy -> parseVEX span phlp nor0F2B vex0F2B - | 0x2Cuy -> parseVEX span phlp nor0F2C vex0F2C - | 0x2Duy -> parseVEX span phlp nor0F2D vex0F2D - | 0x2Euy -> parseVEX span phlp nor0F2E vex0F2E - | 0x2Fuy -> parseVEX span phlp nor0F2F vex0F2F - | 0x30uy -> render span phlp WRMSR SzCond.Normal OD.No SZ.Def - | 0x31uy -> render span phlp RDTSC SzCond.Normal OD.No SZ.Def - | 0x32uy -> render span phlp RDMSR SzCond.Normal OD.No SZ.Def - | 0x33uy -> render span phlp RDPMC SzCond.Normal OD.No SZ.Def - | 0x34uy -> render span phlp SYSENTER SzCond.Normal OD.No SZ.Def - | 0x35uy -> render span phlp SYSEXIT SzCond.Normal OD.No SZ.Def - | 0x37uy -> render span phlp GETSEC SzCond.Normal OD.No SZ.Def - | 0x40uy -> - if phlp.VEXInfo.IsSome then raise ParsingFailureException - else render span phlp CMOVO SzCond.Normal OD.GprRm SZ.Def - | 0x41uy -> - if phlp.VEXInfo.IsSome then raise ParsingFailureException - else render span phlp CMOVNO SzCond.Normal OD.GprRm SZ.Def - | 0x42uy -> - if phlp.VEXInfo.IsSome then raise ParsingFailureException - else render span phlp CMOVB SzCond.Normal OD.GprRm SZ.Def - | 0x43uy -> - if phlp.VEXInfo.IsSome then raise ParsingFailureException - else render span phlp CMOVAE SzCond.Normal OD.GprRm SZ.Def - | 0x44uy -> - if phlp.VEXInfo.IsSome then - parseVEXW span phlp notEn notEn vex0F44W0 vex0F44W1 - else render span phlp CMOVZ SzCond.Normal OD.GprRm SZ.Def - | 0x45uy -> - if phlp.VEXInfo.IsSome then raise ParsingFailureException - else render span phlp CMOVNZ SzCond.Normal OD.GprRm SZ.Def - | 0x46uy -> - if phlp.VEXInfo.IsSome then raise ParsingFailureException - else render span phlp CMOVBE SzCond.Normal OD.GprRm SZ.Def - | 0x47uy -> - if phlp.VEXInfo.IsSome then raise ParsingFailureException - else render span phlp CMOVA SzCond.Normal OD.GprRm SZ.Def - | 0x48uy -> - if phlp.VEXInfo.IsSome then raise ParsingFailureException - else render span phlp CMOVS SzCond.Normal OD.GprRm SZ.Def - | 0x49uy -> - if phlp.VEXInfo.IsSome then raise ParsingFailureException - else render span phlp CMOVNS SzCond.Normal OD.GprRm SZ.Def - | 0x4Auy -> - if phlp.VEXInfo.IsSome then raise ParsingFailureException - else render span phlp CMOVP SzCond.Normal OD.GprRm SZ.Def - | 0x4Buy -> - if phlp.VEXInfo.IsSome then raise ParsingFailureException - else render span phlp CMOVNP SzCond.Normal OD.GprRm SZ.Def - | 0x4Cuy -> - if phlp.VEXInfo.IsSome then raise ParsingFailureException - else render span phlp CMOVL SzCond.Normal OD.GprRm SZ.Def - | 0x4Duy -> - if phlp.VEXInfo.IsSome then raise ParsingFailureException - else render span phlp CMOVGE SzCond.Normal OD.GprRm SZ.Def - | 0x4Euy -> - if phlp.VEXInfo.IsSome then raise ParsingFailureException - else render span phlp CMOVLE SzCond.Normal OD.GprRm SZ.Def - | 0x4Fuy -> - if phlp.VEXInfo.IsSome then raise ParsingFailureException - else render span phlp CMOVG SzCond.Normal OD.GprRm SZ.Def - | 0x50uy -> parseVEX span phlp nor0F50 vex0F50 - | 0x51uy -> parseVEX span phlp nor0F51 vex0F51 - | 0x52uy -> parseVEX span phlp nor0F52 vex0F52 - | 0x53uy -> parseVEX span phlp nor0F53 vex0F53 - | 0x54uy -> parseVEX span phlp nor0F54 vex0F54 - | 0x55uy -> parseVEX span phlp nor0F55 vex0F55 - | 0x56uy -> parseVEX span phlp nor0F56 vex0F56 - | 0x57uy -> parseVEX span phlp nor0F57 vex0F57 - | 0x58uy -> parseEVEX span phlp nor0F58 vex0F58 evex0F58W0 evex0F58W1 - | 0x59uy -> parseVEX span phlp nor0F59 vex0F59 - | 0x5Auy -> parseEVEX span phlp nor0F5A vex0F5A evex0F5AW0 evex0F5AW1 - | 0x5Buy -> parseVEX span phlp nor0F5B vex0F5B - | 0x5Cuy -> parseVEX span phlp nor0F5C vex0F5C - | 0x5Duy -> parseEVEX span phlp nor0F5D vex0F5D evex0F5DW0 notEn - | 0x5Euy -> parseVEX span phlp nor0F5E vex0F5E - | 0x5Fuy -> parseEVEX span phlp nor0F5F vex0F5F evex0F5FW0 evex0F5FW1 - | 0x60uy -> parseVEX span phlp nor0F60 vex0F60 - | 0x61uy -> parseVEX span phlp nor0F61 vex0F61 - | 0x62uy -> parseVEX span phlp nor0F62 vex0F62 - | 0x63uy -> parseVEX span phlp nor0F63 vex0F63 - | 0x64uy -> parseVEX span phlp nor0F64 vex0F64 - | 0x65uy -> parseVEX span phlp nor0F65 vex0F65 - | 0x66uy -> parseVEX span phlp nor0F66 vex0F66 - | 0x67uy -> parseVEX span phlp nor0F67 vex0F67 - | 0x68uy -> parseVEX span phlp nor0F68 vex0F68 - | 0x69uy -> parseVEX span phlp nor0F69 vex0F69 - | 0x6Auy -> parseVEX span phlp nor0F6A vex0F6A - | 0x6Buy -> parseVEX span phlp nor0F6B vex0F6B - | 0x6Cuy -> parseVEX span phlp nor0F6C vex0F6C - | 0x6Duy -> parseVEX span phlp nor0F6D vex0F6D - | 0x6Euy -> parseVEXW span phlp nor0F6EW0 nor0F6EW1 vex0F6EW0 vex0F6EW1 - | 0x6Fuy -> parseEVEX span phlp nor0F6F vex0F6F evex0F6FW0 evex0F6FW1 - | 0x70uy -> parseVEX span phlp nor0F70 vex0F70 - | 0x74uy -> parseEVEX span phlp nor0F74 vex0F74 evex0F74 evex0F74 - | 0x75uy -> parseEVEX span phlp nor0F75 vex0F75 evex0F75 evex0F75 - | 0x76uy -> parseVEX span phlp nor0F76 vex0F76 - | 0x77uy -> parseVEX span phlp nor0F77 vex0F77 - | 0x78uy -> parseEVEX span phlp nor0F78 notEn evex0F78W0 evex0F78W1 - | 0x7Auy -> parseEVEX span phlp notEn notEn evex0F7AW0 evex0F7AW1 - | 0x7Buy -> parseEVEXW span phlp notEn notEn evex0F7BW0 evex0F7BW1 - | 0x7Cuy -> parseVEX span phlp nor0F7C vex0F7C - | 0x7Duy -> parseVEX span phlp nor0F7D vex0F7D - | 0x7Euy -> parseVEXW span phlp nor0F7EW0 nor0F7EW1 vex0F7EW0 vex0F7EW1 - | 0x7Fuy -> parseEVEX span phlp nor0F7F vex0F7F evex0F7FW0 evex0F7FW1 - | 0x80uy -> addBND phlp; render span phlp JO SzCond.F64 OD.Rel SZ.D64 - | 0x81uy -> addBND phlp; render span phlp JNO SzCond.F64 OD.Rel SZ.D64 - | 0x82uy -> addBND phlp; render span phlp JB SzCond.F64 OD.Rel SZ.D64 - | 0x83uy -> addBND phlp; render span phlp JNB SzCond.F64 OD.Rel SZ.D64 - | 0x84uy -> addBND phlp; render span phlp JZ SzCond.F64 OD.Rel SZ.D64 - | 0x85uy -> addBND phlp; render span phlp JNZ SzCond.F64 OD.Rel SZ.D64 - | 0x86uy -> addBND phlp; render span phlp JBE SzCond.F64 OD.Rel SZ.D64 - | 0x87uy -> addBND phlp; render span phlp JA SzCond.F64 OD.Rel SZ.D64 - | 0x88uy -> addBND phlp; render span phlp JS SzCond.F64 OD.Rel SZ.D64 - | 0x89uy -> addBND phlp; render span phlp JNS SzCond.F64 OD.Rel SZ.D64 - | 0x8Auy -> addBND phlp; render span phlp JP SzCond.F64 OD.Rel SZ.D64 - | 0x8Buy -> addBND phlp; render span phlp JNP SzCond.F64 OD.Rel SZ.D64 - | 0x8Cuy -> addBND phlp; render span phlp JL SzCond.F64 OD.Rel SZ.D64 - | 0x8Duy -> addBND phlp; render span phlp JNL SzCond.F64 OD.Rel SZ.D64 - | 0x8Euy -> addBND phlp; render span phlp JLE SzCond.F64 OD.Rel SZ.D64 - | 0x8Fuy -> addBND phlp; render span phlp JG SzCond.F64 OD.Rel SZ.D64 - | 0x90uy -> parseVEXW span phlp nor0F90 nor0F90 vex0F90W0 vex0F90W1 - | 0x91uy -> parseVEXW span phlp nor0F91 nor0F91 vex0F91W0 vex0F91W1 - | 0x92uy -> parseVEXW span phlp nor0F92 nor0F92 vex0F92W0 vex0F92W1 - | 0x93uy -> parseVEXW span phlp nor0F93 nor0F93 vex0F93W0 vex0F93W1 - | 0x94uy -> render span phlp SETZ SzCond.Normal OD.Mem SZ.Byte - | 0x95uy -> render span phlp SETNZ SzCond.Normal OD.Mem SZ.Byte - | 0x96uy -> render span phlp SETBE SzCond.Normal OD.Mem SZ.Byte - | 0x97uy -> render span phlp SETA SzCond.Normal OD.Mem SZ.Byte - | 0x98uy -> parseVEXW span phlp nor0F98 nor0F98 vex0F98W0 vex0F98W1 - | 0x99uy -> render span phlp SETNS SzCond.Normal OD.Mem SZ.Byte - | 0x9Auy -> render span phlp SETP SzCond.Normal OD.Mem SZ.Byte - | 0x9Buy -> render span phlp SETNP SzCond.Normal OD.Mem SZ.Byte - | 0x9Cuy -> render span phlp SETL SzCond.Normal OD.Mem SZ.Byte - | 0x9Duy -> render span phlp SETNL SzCond.Normal OD.Mem SZ.Byte - | 0x9Euy -> render span phlp SETLE SzCond.Normal OD.Mem SZ.Byte - | 0x9Fuy -> render span phlp SETG SzCond.Normal OD.Mem SZ.Byte - | 0xA0uy -> render span phlp PUSH SzCond.D64 OD.Fs SZ.RegW - | 0xA1uy -> render span phlp POP SzCond.D64 OD.Fs SZ.RegW - | 0xA2uy -> render span phlp CPUID SzCond.Normal OD.No SZ.Def - | 0xA3uy -> render span phlp BT SzCond.Normal OD.RmGpr SZ.Def - | 0xA4uy -> render span phlp SHLD SzCond.Normal OD.XmRegImm8 SZ.Def - | 0xA5uy -> render span phlp SHLD SzCond.Normal OD.RmGprCL SZ.Def - | 0xA6uy -> parsePadLockInstr1 span phlp - | 0xA7uy -> parsePadLockInstr2 span phlp - | 0xA8uy -> render span phlp PUSH SzCond.D64 OD.Gs SZ.RegW - | 0xA9uy -> render span phlp POP SzCond.D64 OD.Gs SZ.RegW - | 0xAAuy -> render span phlp RSM SzCond.Normal OD.No SZ.Def - | 0xABuy -> render span phlp BTS SzCond.Normal OD.RmGpr SZ.Def - | 0xACuy -> render span phlp SHRD SzCond.Normal OD.XmRegImm8 SZ.Def - | 0xADuy -> render span phlp SHRD SzCond.Normal OD.RmGprCL SZ.Def - | 0xAFuy -> render span phlp IMUL SzCond.Normal OD.GprRm SZ.Def - | 0xB0uy -> render span phlp CMPXCHG SzCond.Normal OD.RmGpr SZ.Byte - | 0xB1uy -> render span phlp CMPXCHG SzCond.Normal OD.RmGpr SZ.Def - | 0xB2uy -> render span phlp LSS SzCond.Normal OD.GprM SZ.PRM - | 0xB3uy -> render span phlp BTR SzCond.Normal OD.RmGpr SZ.Def - | 0xB4uy -> render span phlp LFS SzCond.Normal OD.GprM SZ.PRM - | 0xB5uy -> render span phlp LGS SzCond.Normal OD.GprM SZ.PRM - | 0xB6uy -> render span phlp MOVZX SzCond.Normal OD.GprRm SZ.BV - | 0xB7uy -> render span phlp MOVZX SzCond.Normal OD.GprRm SZ.WV - | 0xB8uy when not <| Prefix.hasREPZ phlp.Prefixes -> - raise ParsingFailureException - | 0xB8uy -> - phlp.Prefixes <- filterREPZPrefs phlp.Prefixes - render span phlp POPCNT SzCond.Normal OD.GprRm SZ.Def - | 0xB9uy -> render span phlp UD1 SzCond.Normal OD.GprRm SZ.Def - | 0xBBuy when Prefix.hasREPZ phlp.Prefixes -> raise ParsingFailureException - | 0xBBuy -> render span phlp BTC SzCond.Normal OD.RmGpr SZ.Def - | 0xBCuy when Prefix.hasREPZ phlp.Prefixes -> - phlp.Prefixes <- filterREPZPrefs phlp.Prefixes - render span phlp TZCNT SzCond.Normal OD.GprRm SZ.Def - | 0xBCuy -> render span phlp BSF SzCond.Normal OD.GprRm SZ.Def - | 0xBDuy when Prefix.hasREPZ phlp.Prefixes -> - phlp.Prefixes <- filterREPZPrefs phlp.Prefixes - render span phlp LZCNT SzCond.Normal OD.GprRm SZ.Def - | 0xBDuy -> render span phlp BSR SzCond.Normal OD.GprRm SZ.Def - | 0xBEuy -> render span phlp MOVSX SzCond.Normal OD.GprRm SZ.BV - | 0xBFuy -> render span phlp MOVSX SzCond.Normal OD.GprRm SZ.WV - | 0xC0uy -> render span phlp XADD SzCond.Normal OD.RmGpr SZ.Byte - | 0xC1uy -> render span phlp XADD SzCond.Normal OD.RmGpr SZ.Def - | 0xC2uy -> parseEVEX span phlp nor0FC2 vex0FC2 evex0FC2W0 evex0FC2W1 - | 0xC3uy -> - if phlp.VEXInfo.IsSome then raise ParsingFailureException - else render span phlp MOVNTI SzCond.Normal OD.RmGpr SZ.Def - | 0xC4uy -> parseVEX span phlp nor0FC4 vex0FC4 - | 0xC5uy -> parseVEX span phlp nor0FC5 vex0FC5 - | 0xC6uy -> parseVEX span phlp nor0FC6 vex0FC6 - | 0xC7uy when ParsingHelper.IsReg111(span, phlp) -> - render span phlp RDSEED SzCond.Normal OD.Gpr SZ.Def - | 0xC8uy -> render span (ignOpSz phlp) BSWAP SzCond.Normal OD.Rax SZ.Def - | 0xC9uy -> render span (ignOpSz phlp) BSWAP SzCond.Normal OD.Rcx SZ.Def - | 0xCAuy -> render span (ignOpSz phlp) BSWAP SzCond.Normal OD.Rdx SZ.Def - | 0xCBuy -> render span (ignOpSz phlp) BSWAP SzCond.Normal OD.Rbx SZ.Def - | 0xCCuy -> render span (ignOpSz phlp) BSWAP SzCond.Normal OD.Rsp SZ.Def - | 0xCDuy -> render span (ignOpSz phlp) BSWAP SzCond.Normal OD.Rbp SZ.Def - | 0xCEuy -> render span (ignOpSz phlp) BSWAP SzCond.Normal OD.Rsi SZ.Def - | 0xCFuy -> render span (ignOpSz phlp) BSWAP SzCond.Normal OD.Rdi SZ.Def - | 0xD0uy -> parseVEX span phlp nor0FD0 vex0FD0 - | 0xD1uy -> parseVEX span phlp nor0FD1 vex0FD1 - | 0xD2uy -> parseVEX span phlp nor0FD2 vex0FD2 - | 0xD3uy -> parseVEX span phlp nor0FD3 vex0FD3 - | 0xD4uy -> parseVEX span phlp nor0FD4 vex0FD4 - | 0xD5uy -> parseVEX span phlp nor0FD5 vex0FD5 - | 0xD6uy -> -#if !EMULATION - ensureVEX128 phlp -#endif - parseVEX span phlp nor0FD6 vex0FD6 - | 0xD7uy -> parseVEX span phlp nor0FD7 vex0FD7 - | 0xD8uy -> parseVEX span phlp nor0FD8 vex0FD8 - | 0xD9uy -> parseVEX span phlp nor0FD9 vex0FD9 - | 0xDAuy -> parseVEX span phlp nor0FDA vex0FDA - | 0xDBuy -> parseEVEX span phlp nor0FDB vex0FDB evex0FDBW0 evex0FDBW1 - | 0xDCuy -> parseVEX span phlp nor0FDC vex0FDC - | 0xDDuy -> parseVEX span phlp nor0FDD vex0FDD - | 0xDEuy -> parseVEX span phlp nor0FDE vex0FDE - | 0xDFuy -> parseVEX span phlp nor0FDF vex0FDF - | 0xE0uy -> parseVEX span phlp nor0FE0 vex0FE0 - | 0xE1uy -> parseVEX span phlp nor0FE1 vex0FE1 - | 0xE2uy -> parseVEX span phlp nor0FE2 vex0FE2 - | 0xE3uy -> parseVEX span phlp nor0FE3 vex0FE3 - | 0xE4uy -> parseVEX span phlp nor0FE4 vex0FE4 - | 0xE5uy -> parseVEX span phlp nor0FE5 vex0FE5 - | 0xE6uy -> parseEVEX span phlp nor0FE6 vex0FE6 evex0FE6W0 evex0FE6W1 - | 0xE7uy -> parseEVEX span phlp nor0FE7 vex0FE7 evex0FE7W0 evex0FE7W1 - | 0xE8uy -> parseVEX span phlp nor0FE8 vex0FE8 - | 0xE9uy -> parseVEX span phlp nor0FE9 vex0FE9 - | 0xEAuy -> parseVEX span phlp nor0FEA vex0FEA - | 0xEBuy -> parseEVEX span phlp nor0FEB vex0FEB evex0FEBW0 evex0FEBW1 - | 0xECuy -> parseVEX span phlp nor0FEC vex0FEC - | 0xEDuy -> parseVEX span phlp nor0FED vex0FED - | 0xEEuy -> parseVEX span phlp nor0FEE vex0FEE - | 0xEFuy -> parseEVEX span phlp nor0FEF vex0FEF evex0FEFW0 evex0FEFW1 - | 0xF0uy -> parseVEX span phlp nor0FF0 vex0FF0 - | 0xF1uy -> parseVEX span phlp nor0FF1 vex0FF1 - | 0xF2uy -> parseVEX span phlp nor0FF2 vex0FF2 - | 0xF3uy -> parseVEX span phlp nor0FF3 vex0FF3 - | 0xF4uy -> parseVEX span phlp nor0FF4 vex0FF4 - | 0xF5uy -> parseVEX span phlp nor0FF5 vex0FF5 - | 0xF6uy -> parseVEX span phlp nor0FF6 vex0FF6 - | 0xF7uy -> parseVEX span phlp nor0FF7 vex0FF7 - | 0xF8uy -> parseVEX span phlp nor0FF8 vex0FF8 - | 0xF9uy -> parseVEX span phlp nor0FF9 vex0FF9 - | 0xFAuy -> parseVEX span phlp nor0FFA vex0FFA - | 0xFBuy -> parseVEX span phlp nor0FFB vex0FFB - | 0xFCuy -> parseVEX span phlp nor0FFC vex0FFC - | 0xFDuy -> parseVEX span phlp nor0FFD vex0FFD - | 0xFEuy -> parseVEX span phlp nor0FFE vex0FFE - | 0xFFuy -> render span phlp UD0 SzCond.Normal OD.GprRm SZ.Def - | 0x00uy -> parseGrpOp span phlp OpGroup.G6 OD.No SZ.Def - | 0x01uy -> parseGrpOp span phlp OpGroup.G7 OD.No SZ.Def - | 0xBAuy -> parseGrpOp span phlp OpGroup.G8 OD.RmSImm8 SZ.Def - | 0xC7uy -> parseGrpOp span phlp OpGroup.G9 OD.No SZ.Def - | 0x71uy -> parseGrpOp span phlp OpGroup.G12 OD.No SZ.Def - | 0x72uy -> parseGrpOp span phlp OpGroup.G13 OD.No SZ.Def - | 0x73uy -> parseGrpOp span phlp OpGroup.G14 OD.No SZ.Def - | 0xAEuy -> parseGrpOp span phlp OpGroup.G15 OD.No SZ.Def - | 0x18uy -> parseGrpOp span phlp OpGroup.G16 OD.Mem SZ.Def - | 0x38uy -> parseThreeByteOp1 span phlp - | 0x3Auy -> parseThreeByteOp2 span phlp - | _ -> raise ParsingFailureException + //match sidx with + //| SizeKind.VecDefRC -> + // (phlp: ParsingHelper).SzComputers[int sidx].RenderEVEX(span, phlp, szCond) + //| _ -> (phlp: ParsingHelper).SzComputers[int sidx].Render(phlp, szCond) + //exceptionHandling opcode phlp + //let oprs = phlp.OprParsers[int oidx].Render(span, phlp) + //newInstruction phlp opcode oprs + newInstruction phlp opcode NoOperand diff --git a/src/FrontEnd/Intel/ParsingHelper.fs b/src/FrontEnd/Intel/ParsingHelper.fs index cf7172c0..63b50065 100644 --- a/src/FrontEnd/Intel/ParsingHelper.fs +++ b/src/FrontEnd/Intel/ParsingHelper.fs @@ -34,8 +34,6 @@ type internal ParsingHelper(reader: IBinReader, rex, vex, wordSz, - ops, - szs, lifter) = let mutable addr: Addr = addr let mutable cpos: int = cpos (* current position *) @@ -49,11 +47,12 @@ type internal ParsingHelper(reader: IBinReader, let mutable regSz = 0 let mutable operationSz = 0 let mutable tupleType = TupleType.NA + let mutable opcodeClass = OpcodeClass.Normal OpcodeMap.OneByte let mutable isFar = false - new(reader, wordSz, oparsers, szcomputers, lifter) = + new(reader, wordSz, lifter) = ParsingHelper(reader, 0UL, 0, Prefix.None, REXPrefix.NOREX, None, - wordSz, oparsers, szcomputers, lifter) + wordSz, lifter) member _.InsAddr with get(): Addr = addr and set a = addr <- a member _.CurrPos with get() = cpos and set p = cpos <- p @@ -61,8 +60,6 @@ type internal ParsingHelper(reader: IBinReader, member _.REXPrefix with get(): REXPrefix = rex and set r = rex <- r member _.VEXInfo with get(): VEXInfo option = vex and set v = vex <- v member _.WordSize with get(): WordSize = wordSize and set w = wordSize <- w - member _.OprParsers with get(): OperandParser[] = ops - member _.SzComputers with get(): InsSizeComputer[] = szs member _.MemEffOprSize with get() = memOprSz and set s = memOprSz <- s member _.MemEffAddrSize with get() = memAddrSz and set s = memAddrSz <- s member _.MemEffRegSize with get() = memRegSz and set s = memRegSz <- s @@ -70,6 +67,8 @@ type internal ParsingHelper(reader: IBinReader, member _.OperationSize with get() = operationSz and set s = operationSz <- s member _.TupleType with get(): TupleType = tupleType and set t = tupleType <- t + member _.OpcodeClass + with get(): OpcodeClass = opcodeClass and set c = opcodeClass <- c member _.Lifter with get(): ILiftable = lifter member _.IsFar with get() = isFar and set f = isFar <- f @@ -197,28 +196,6 @@ and internal SzCond = /// Normal conditions. This includes all other size conditions in Table A-1. | Normal = 2 -/// The tupletype will be referenced in the instruction operand encoding table -/// in the reference page of each instruction, providing the cross reference for -/// the scaling factor N to encoding memory addressing operand. -and internal TupleType = - /// Compressed Displacement (DISP8*N) Affected by Embedded Broadcast. - | Full = 0 - | Half = 1 - /// EVEX DISP8*N for Instructions Not Affected by Embedded Broadcast. - | FullMem = 2 - | Tuple1Scalar = 3 - | Tuple1Fixed = 4 - | Tuple2 = 5 - | Tuple4 = 6 - | Tuple8 = 7 - | HalfMem = 8 - | QuarterMem = 9 - | EighthMem = 10 - | Mem128 = 11 - | MOVDDUP = 12 - | Tuple1_4X = 13 - | NA = 14 (* N/A *) - and internal SizeKind = | Byte = 0 | Word = 1 diff --git a/src/FrontEnd/Intel/ParsingJob.fs b/src/FrontEnd/Intel/ParsingJob.fs index a9ad8ed1..c8413ccf 100644 --- a/src/FrontEnd/Intel/ParsingJob.fs +++ b/src/FrontEnd/Intel/ParsingJob.fs @@ -29,2061 +29,3 @@ open B2R2.FrontEnd.BinLifter open B2R2.FrontEnd.Intel open B2R2.FrontEnd.Intel.ParsingFunctions open LanguagePrimitives - -[] -type internal ParsingJob() = - abstract Run: ByteSpan * ParsingHelper -> Instruction - -type internal OneOp00() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RmGpr].Render(span, phlp) - newInstruction phlp Opcode.ADD oprs - -type internal OneOp01() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RmGpr].Render(span, phlp) - newInstruction phlp Opcode.ADD oprs - -type internal OneOp02() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.GprRm].Render(span, phlp) - newInstruction phlp Opcode.ADD oprs - -type internal OneOp03() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.GprRm].Render(span, phlp) - newInstruction phlp Opcode.ADD oprs - -type internal OneOp04() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RegImm8].Render(span, phlp) - newInstruction phlp Opcode.ADD oprs - -type internal OneOp05() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RegImm].Render(span, phlp) - newInstruction phlp Opcode.ADD oprs - -type internal OneOp06() = - inherit ParsingJob() - override _.Run(span, phlp) = -#if !EMULATION - ensure32 phlp -#endif - phlp.SzComputers[int SZ.RegW].Render(phlp, SzCond.Normal) - phlp.OperationSize <- phlp.MemEffOprSize - let oprs = phlp.OprParsers[int OD.Es].Render(span, phlp) - newInstruction phlp Opcode.PUSH oprs - -type internal OneOp07() = - inherit ParsingJob() - override _.Run(span, phlp) = -#if !EMULATION - ensure32 phlp -#endif - phlp.SzComputers[int SZ.RegW].Render(phlp, SzCond.Normal) - phlp.OperationSize <- phlp.MemEffOprSize - let oprs = phlp.OprParsers[int OD.Es].Render(span, phlp) - newInstruction phlp Opcode.POP oprs - -type internal OneOp08() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RmGpr].Render(span, phlp) - newInstruction phlp Opcode.OR oprs - -type internal OneOp09() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RmGpr].Render(span, phlp) - newInstruction phlp Opcode.OR oprs - -type internal OneOp0A() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.GprRm].Render(span, phlp) - newInstruction phlp Opcode.OR oprs - -type internal OneOp0B() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.GprRm].Render(span, phlp) - newInstruction phlp Opcode.OR oprs - -type internal OneOp0C() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RegImm8].Render(span, phlp) - newInstruction phlp Opcode.OR oprs - -type internal OneOp0D() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RegImm].Render(span, phlp) - newInstruction phlp Opcode.OR oprs - -type internal OneOp0E() = - inherit ParsingJob() - override _.Run(span, phlp) = -#if !EMULATION - ensure32 phlp -#endif - phlp.SzComputers[int SZ.RegW].Render(phlp, SzCond.Normal) - phlp.OperationSize <- phlp.MemEffOprSize - let oprs = phlp.OprParsers[int OD.Cs].Render(span, phlp) - newInstruction phlp Opcode.PUSH oprs - -type internal OneOp0F() = - inherit ParsingJob() - override _.Run(span, phlp) = parseTwoByteOpcode span phlp - -type internal OneOp10() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RmGpr].Render(span, phlp) - newInstruction phlp Opcode.ADC oprs - -type internal OneOp11() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RmGpr].Render(span, phlp) - newInstruction phlp Opcode.ADC oprs - -type internal OneOp12() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.GprRm].Render(span, phlp) - newInstruction phlp Opcode.ADC oprs - -type internal OneOp13() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.GprRm].Render(span, phlp) - newInstruction phlp Opcode.ADC oprs - -type internal OneOp14() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RegImm8].Render(span, phlp) - newInstruction phlp Opcode.ADC oprs - -type internal OneOp15() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RegImm].Render(span, phlp) - newInstruction phlp Opcode.ADC oprs - -type internal OneOp16() = - inherit ParsingJob() - override _.Run(span, phlp) = -#if !EMULATION - ensure32 phlp -#endif - phlp.SzComputers[int SZ.RegW].Render(phlp, SzCond.Normal) - phlp.OperationSize <- phlp.MemEffOprSize - let oprs = phlp.OprParsers[int OD.Ss].Render(span, phlp) - newInstruction phlp Opcode.PUSH oprs - -type internal OneOp17() = - inherit ParsingJob() - override _.Run(span, phlp) = -#if !EMULATION - ensure32 phlp -#endif - phlp.SzComputers[int SZ.RegW].Render(phlp, SzCond.Normal) - phlp.OperationSize <- phlp.MemEffOprSize - let oprs = phlp.OprParsers[int OD.Ss].Render(span, phlp) - newInstruction phlp Opcode.POP oprs - -type internal OneOp18() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RmGpr].Render(span, phlp) - newInstruction phlp Opcode.SBB oprs - -type internal OneOp19() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RmGpr].Render(span, phlp) - newInstruction phlp Opcode.SBB oprs - -type internal OneOp1A() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.GprRm].Render(span, phlp) - newInstruction phlp Opcode.SBB oprs - -type internal OneOp1B() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.GprRm].Render(span, phlp) - newInstruction phlp Opcode.SBB oprs - -type internal OneOp1C() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RegImm8].Render(span, phlp) - newInstruction phlp Opcode.SBB oprs - -type internal OneOp1D() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RegImm].Render(span, phlp) - newInstruction phlp Opcode.SBB oprs - -type internal OneOp1E() = - inherit ParsingJob() - override _.Run(span, phlp) = -#if !EMULATION - ensure32 phlp -#endif - phlp.SzComputers[int SZ.RegW].Render(phlp, SzCond.Normal) - phlp.OperationSize <- phlp.MemEffOprSize - let oprs = phlp.OprParsers[int OD.Ds].Render(span, phlp) - newInstruction phlp Opcode.PUSH oprs - -type internal OneOp1F() = - inherit ParsingJob() - override _.Run(span, phlp) = -#if !EMULATION - ensure32 phlp -#endif - phlp.SzComputers[int SZ.RegW].Render(phlp, SzCond.Normal) - phlp.OperationSize <- phlp.MemEffOprSize - let oprs = phlp.OprParsers[int OD.Ds].Render(span, phlp) - newInstruction phlp Opcode.POP oprs - -type internal OneOp20() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RmGpr].Render(span, phlp) - newInstruction phlp Opcode.AND oprs - -type internal OneOp21() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RmGpr].Render(span, phlp) - newInstruction phlp Opcode.AND oprs - -type internal OneOp22() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.GprRm].Render(span, phlp) - newInstruction phlp Opcode.AND oprs - -type internal OneOp23() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.GprRm].Render(span, phlp) - newInstruction phlp Opcode.AND oprs - -type internal OneOp24() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RegImm8].Render(span, phlp) - newInstruction phlp Opcode.AND oprs - -type internal OneOp25() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RegImm].Render(span, phlp) - newInstruction phlp Opcode.AND oprs - -type internal OneOp26() = - inherit ParsingJob() - override _.Run(_, _) = raise ParsingFailureException - -type internal OneOp27() = - inherit ParsingJob() - override _.Run(span, phlp) = -#if !EMULATION - ensure32 phlp -#endif - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.No].Render(span, phlp) - newInstruction phlp Opcode.DAA oprs - -type internal OneOp28() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RmGpr].Render(span, phlp) - newInstruction phlp Opcode.SUB oprs - -type internal OneOp29() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RmGpr].Render(span, phlp) - newInstruction phlp Opcode.SUB oprs - -type internal OneOp2A() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.GprRm].Render(span, phlp) - newInstruction phlp Opcode.SUB oprs - -type internal OneOp2B() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.GprRm].Render(span, phlp) - newInstruction phlp Opcode.SUB oprs - -type internal OneOp2C() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RegImm8].Render(span, phlp) - newInstruction phlp Opcode.SUB oprs - -type internal OneOp2D() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RegImm].Render(span, phlp) - newInstruction phlp Opcode.SUB oprs - -type internal OneOp2E() = - inherit ParsingJob() - override _.Run(_, _) = raise ParsingFailureException - -type internal OneOp2F() = - inherit ParsingJob() - override _.Run(span, phlp) = -#if !EMULATION - ensure32 phlp -#endif - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.No].Render(span, phlp) - newInstruction phlp Opcode.DAS oprs - -type internal OneOp30() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RmGpr].Render(span, phlp) - newInstruction phlp Opcode.XOR oprs - -type internal OneOp31() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RmGpr].Render(span, phlp) - newInstruction phlp Opcode.XOR oprs - -type internal OneOp32() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.GprRm].Render(span, phlp) - newInstruction phlp Opcode.XOR oprs - -type internal OneOp33() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.GprRm].Render(span, phlp) - newInstruction phlp Opcode.XOR oprs - -type internal OneOp34() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RegImm8].Render(span, phlp) - newInstruction phlp Opcode.XOR oprs - -type internal OneOp35() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RegImm].Render(span, phlp) - newInstruction phlp Opcode.XOR oprs - -type internal OneOp36() = - inherit ParsingJob() - override _.Run(_, _) = raise ParsingFailureException - -type internal OneOp37() = - inherit ParsingJob() - override _.Run(span, phlp) = -#if !EMULATION - ensure32 phlp -#endif - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.No].Render(span, phlp) - newInstruction phlp Opcode.AAA oprs - -type internal OneOp38() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RmGpr].Render(span, phlp) - newInstruction phlp Opcode.CMP oprs - -type internal OneOp39() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RmGpr].Render(span, phlp) - newInstruction phlp Opcode.CMP oprs - -type internal OneOp3A() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.GprRm].Render(span, phlp) - newInstruction phlp Opcode.CMP oprs - -type internal OneOp3B() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.GprRm].Render(span, phlp) - newInstruction phlp Opcode.CMP oprs - -type internal OneOp3C() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RegImm8].Render(span, phlp) - newInstruction phlp Opcode.CMP oprs - -type internal OneOp3D() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RegImm].Render(span, phlp) - newInstruction phlp Opcode.CMP oprs - -type internal OneOp3E() = - inherit ParsingJob() - override _.Run(_, _) = raise ParsingFailureException - -type internal OneOp3F() = - inherit ParsingJob() - override _.Run(span, phlp) = -#if !EMULATION - ensure32 phlp -#endif - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.No].Render(span, phlp) - newInstruction phlp Opcode.AAS oprs - -type internal OneOp40() = - inherit ParsingJob() - override _.Run(span, phlp) = -#if !EMULATION - ensure32 phlp -#endif - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.Eax].Render(span, phlp) - newInstruction phlp Opcode.INC oprs - -type internal OneOp41() = - inherit ParsingJob() - override _.Run(span, phlp) = -#if !EMULATION - ensure32 phlp -#endif - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.Ecx].Render(span, phlp) - newInstruction phlp Opcode.INC oprs - -type internal OneOp42() = - inherit ParsingJob() - override _.Run(span, phlp) = -#if !EMULATION - ensure32 phlp -#endif - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.Edx].Render(span, phlp) - newInstruction phlp Opcode.INC oprs - -type internal OneOp43() = - inherit ParsingJob() - override _.Run(span, phlp) = -#if !EMULATION - ensure32 phlp -#endif - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.Ebx].Render(span, phlp) - newInstruction phlp Opcode.INC oprs - -type internal OneOp44() = - inherit ParsingJob() - override _.Run(span, phlp) = -#if !EMULATION - ensure32 phlp -#endif - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.Esp].Render(span, phlp) - newInstruction phlp Opcode.INC oprs - -type internal OneOp45() = - inherit ParsingJob() - override _.Run(span, phlp) = -#if !EMULATION - ensure32 phlp -#endif - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.Ebp].Render(span, phlp) - newInstruction phlp Opcode.INC oprs - -type internal OneOp46() = - inherit ParsingJob() - override _.Run(span, phlp) = -#if !EMULATION - ensure32 phlp -#endif - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.Esi].Render(span, phlp) - newInstruction phlp Opcode.INC oprs - -type internal OneOp47() = - inherit ParsingJob() - override _.Run(span, phlp) = -#if !EMULATION - ensure32 phlp -#endif - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.Edi].Render(span, phlp) - newInstruction phlp Opcode.INC oprs - -type internal OneOp48() = - inherit ParsingJob() - override _.Run(span, phlp) = -#if !EMULATION - ensure32 phlp -#endif - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.Eax].Render(span, phlp) - newInstruction phlp Opcode.DEC oprs - -type internal OneOp49() = - inherit ParsingJob() - override _.Run(span, phlp) = -#if !EMULATION - ensure32 phlp -#endif - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.Ecx].Render(span, phlp) - newInstruction phlp Opcode.DEC oprs - -type internal OneOp4A() = - inherit ParsingJob() - override _.Run(span, phlp) = -#if !EMULATION - ensure32 phlp -#endif - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.Edx].Render(span, phlp) - newInstruction phlp Opcode.DEC oprs - -type internal OneOp4B() = - inherit ParsingJob() - override _.Run(span, phlp) = -#if !EMULATION - ensure32 phlp -#endif - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.Ebx].Render(span, phlp) - newInstruction phlp Opcode.DEC oprs - -type internal OneOp4C() = - inherit ParsingJob() - override _.Run(span, phlp) = -#if !EMULATION - ensure32 phlp -#endif - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.Esp].Render(span, phlp) - newInstruction phlp Opcode.DEC oprs - -type internal OneOp4D() = - inherit ParsingJob() - override _.Run(span, phlp) = -#if !EMULATION - ensure32 phlp -#endif - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.Ebp].Render(span, phlp) - newInstruction phlp Opcode.DEC oprs - -type internal OneOp4E() = - inherit ParsingJob() - override _.Run(span, phlp) = -#if !EMULATION - ensure32 phlp -#endif - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.Esi].Render(span, phlp) - newInstruction phlp Opcode.DEC oprs - -type internal OneOp4F() = - inherit ParsingJob() - override _.Run(span, phlp) = -#if !EMULATION - ensure32 phlp -#endif - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.Edi].Render(span, phlp) - newInstruction phlp Opcode.DEC oprs - -type internal OneOp50() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.D64].Render(phlp, SzCond.D64) - phlp.OperationSize <- phlp.MemEffOprSize - let oprs = phlp.OprParsers[int OD.Rax].Render(span, phlp) - newInstruction phlp Opcode.PUSH oprs - -type internal OneOp51() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.D64].Render(phlp, SzCond.D64) - phlp.OperationSize <- phlp.MemEffOprSize - let oprs = phlp.OprParsers[int OD.Rcx].Render(span, phlp) - newInstruction phlp Opcode.PUSH oprs - -type internal OneOp52() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.D64].Render(phlp, SzCond.D64) - phlp.OperationSize <- phlp.MemEffOprSize - let oprs = phlp.OprParsers[int OD.Rdx].Render(span, phlp) - newInstruction phlp Opcode.PUSH oprs - -type internal OneOp53() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.D64].Render(phlp, SzCond.D64) - phlp.OperationSize <- phlp.MemEffOprSize - let oprs = phlp.OprParsers[int OD.Rbx].Render(span, phlp) - newInstruction phlp Opcode.PUSH oprs - -type internal OneOp54() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.D64].Render(phlp, SzCond.D64) - phlp.OperationSize <- phlp.MemEffOprSize - let oprs = phlp.OprParsers[int OD.Rsp].Render(span, phlp) - newInstruction phlp Opcode.PUSH oprs - -type internal OneOp55() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.D64].Render(phlp, SzCond.D64) - phlp.OperationSize <- phlp.MemEffOprSize - let oprs = phlp.OprParsers[int OD.Rbp].Render(span, phlp) - newInstruction phlp Opcode.PUSH oprs - -type internal OneOp56() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.D64].Render(phlp, SzCond.D64) - phlp.OperationSize <- phlp.MemEffOprSize - let oprs = phlp.OprParsers[int OD.Rsi].Render(span, phlp) - newInstruction phlp Opcode.PUSH oprs - -type internal OneOp57() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.D64].Render(phlp, SzCond.D64) - phlp.OperationSize <- phlp.MemEffOprSize - let oprs = phlp.OprParsers[int OD.Rdi].Render(span, phlp) - newInstruction phlp Opcode.PUSH oprs - -type internal OneOp58() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.D64].Render(phlp, SzCond.D64) - phlp.OperationSize <- phlp.MemEffOprSize - let oprs = phlp.OprParsers[int OD.Rax].Render(span, phlp) - newInstruction phlp Opcode.POP oprs - -type internal OneOp59() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.D64].Render(phlp, SzCond.D64) - phlp.OperationSize <- phlp.MemEffOprSize - let oprs = phlp.OprParsers[int OD.Rcx].Render(span, phlp) - newInstruction phlp Opcode.POP oprs - -type internal OneOp5A() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.D64].Render(phlp, SzCond.D64) - phlp.OperationSize <- phlp.MemEffOprSize - let oprs = phlp.OprParsers[int OD.Rdx].Render(span, phlp) - newInstruction phlp Opcode.POP oprs - -type internal OneOp5B() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.D64].Render(phlp, SzCond.D64) - phlp.OperationSize <- phlp.MemEffOprSize - let oprs = phlp.OprParsers[int OD.Rbx].Render(span, phlp) - newInstruction phlp Opcode.POP oprs - -type internal OneOp5C() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.D64].Render(phlp, SzCond.D64) - phlp.OperationSize <- phlp.MemEffOprSize - let oprs = phlp.OprParsers[int OD.Rsp].Render(span, phlp) - newInstruction phlp Opcode.POP oprs - -type internal OneOp5D() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.D64].Render(phlp, SzCond.D64) - phlp.OperationSize <- phlp.MemEffOprSize - let oprs = phlp.OprParsers[int OD.Rbp].Render(span, phlp) - newInstruction phlp Opcode.POP oprs - -type internal OneOp5E() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.D64].Render(phlp, SzCond.D64) - phlp.OperationSize <- phlp.MemEffOprSize - let oprs = phlp.OprParsers[int OD.Rsi].Render(span, phlp) - newInstruction phlp Opcode.POP oprs - -type internal OneOp5F() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.D64].Render(phlp, SzCond.D64) - phlp.OperationSize <- phlp.MemEffOprSize - let oprs = phlp.OprParsers[int OD.Rdi].Render(span, phlp) - newInstruction phlp Opcode.POP oprs - -type internal OneOp60() = - inherit ParsingJob() - override _.Run(span, phlp) = -#if !EMULATION - ensure32 phlp -#endif - if Prefix.hasOprSz phlp.Prefixes then - render span phlp Opcode.PUSHA SzCond.Normal OD.No SZ.Def - else render span phlp Opcode.PUSHAD SzCond.Normal OD.No SZ.Def - -type internal OneOp61() = - inherit ParsingJob() - override _.Run(span, phlp) = -#if !EMULATION - ensure32 phlp -#endif - if Prefix.hasOprSz phlp.Prefixes then - render span phlp Opcode.POPA SzCond.Normal OD.No SZ.Def - else render span phlp Opcode.POPAD SzCond.Normal OD.No SZ.Def - -type internal OneOp62() = - inherit ParsingJob() - override _.Run(span, phlp) = - if (phlp.WordSize = WordSize.Bit64) || (phlp.PeekByte span >= 0xC0uy) then - let mutable rex = phlp.REXPrefix - let vInfo = getEVEXInfo span &rex phlp.CurrPos - phlp.VEXInfo <- Some vInfo - phlp.REXPrefix <- rex - phlp.CurrPos <- phlp.CurrPos + 3 - match vInfo.VEXType &&& EnumOfValue 7 with - | VEXType.TwoByteOp -> parseTwoByteOpcode span phlp - | VEXType.ThreeByteOpOne -> parseThreeByteOp1 span phlp - | VEXType.ThreeByteOpTwo -> parseThreeByteOp2 span phlp - | _ -> raise ParsingFailureException - else - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.GprM].Render(span, phlp) - newInstruction phlp Opcode.BOUND oprs - -type internal OneOp63() = - inherit ParsingJob() - override _.Run(span, phlp) = - if ParsingHelper.Is64bit phlp then - render span phlp Opcode.MOVSXD SzCond.Normal OD.GprRm SZ.DV - else render span phlp Opcode.ARPL SzCond.Normal OD.RmGpr SZ.Word - -type internal OneOp64() = - inherit ParsingJob() - override _.Run(_, _) = raise ParsingFailureException - -type internal OneOp65() = - inherit ParsingJob() - override _.Run(_, _) = raise ParsingFailureException - -type internal OneOp66() = - inherit ParsingJob() - override _.Run(_, _) = raise ParsingFailureException - -type internal OneOp67() = - inherit ParsingJob() - override _.Run(_, _) = raise ParsingFailureException - -type internal OneOp68() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.D64) - phlp.OperationSize <- phlp.MemEffOprSize - let oprs = phlp.OprParsers[int OD.Imm].Render(span, phlp) - newInstruction phlp Opcode.PUSH oprs - -type internal OneOp69() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.GprRmImm].Render(span, phlp) - newInstruction phlp Opcode.IMUL oprs - -type internal OneOp6A() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.D64) - phlp.OperationSize <- phlp.MemEffOprSize - let oprs = phlp.OprParsers[int OD.SImm8].Render(span, phlp) - newInstruction phlp Opcode.PUSH oprs - -type internal OneOp6B() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.GprRmImm8].Render(span, phlp) - newInstruction phlp Opcode.IMUL oprs - -type internal OneOp6C() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - phlp.OperationSize <- 8 - let oprs = phlp.OprParsers[int OD.No].Render(span, phlp) - newInstruction phlp Opcode.INSB oprs - -type internal OneOp6D() = - inherit ParsingJob() - override _.Run(span, phlp) = - if Prefix.hasOprSz phlp.Prefixes then - render span phlp Opcode.INSW SzCond.Normal OD.No SZ.Def - else render span phlp Opcode.INSD SzCond.Normal OD.No SZ.Def - -type internal OneOp6E() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - phlp.OperationSize <- 8 - let oprs = phlp.OprParsers[int OD.No].Render(span, phlp) - newInstruction phlp Opcode.OUTSB oprs - -type internal OneOp6F() = - inherit ParsingJob() - override _.Run(span, phlp) = - if Prefix.hasOprSz phlp.Prefixes then - render span phlp Opcode.OUTSW SzCond.Normal OD.No SZ.Def - else render span phlp Opcode.OUTSD SzCond.Normal OD.No SZ.Def - -type internal OneOp70() = - inherit ParsingJob() - override _.Run(span, phlp) = - addBND phlp - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.F64) - let oprs = phlp.OprParsers[int OD.Rel8].Render(span, phlp) - newInstruction phlp Opcode.JO oprs - -type internal OneOp71() = - inherit ParsingJob() - override _.Run(span, phlp) = - addBND phlp - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.F64) - let oprs = phlp.OprParsers[int OD.Rel8].Render(span, phlp) - newInstruction phlp Opcode.JNO oprs - -type internal OneOp72() = - inherit ParsingJob() - override _.Run(span, phlp) = - addBND phlp - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.F64) - let oprs = phlp.OprParsers[int OD.Rel8].Render(span, phlp) - newInstruction phlp Opcode.JB oprs - -type internal OneOp73() = - inherit ParsingJob() - override _.Run(span, phlp) = - addBND phlp - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.F64) - let oprs = phlp.OprParsers[int OD.Rel8].Render(span, phlp) - newInstruction phlp Opcode.JNB oprs - -type internal OneOp74() = - inherit ParsingJob() - override _.Run(span, phlp) = - addBND phlp - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.F64) - let oprs = phlp.OprParsers[int OD.Rel8].Render(span, phlp) - newInstruction phlp Opcode.JZ oprs - -type internal OneOp75() = - inherit ParsingJob() - override _.Run(span, phlp) = - addBND phlp - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.F64) - let oprs = phlp.OprParsers[int OD.Rel8].Render(span, phlp) - newInstruction phlp Opcode.JNZ oprs - -type internal OneOp76() = - inherit ParsingJob() - override _.Run(span, phlp) = - addBND phlp - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.F64) - let oprs = phlp.OprParsers[int OD.Rel8].Render(span, phlp) - newInstruction phlp Opcode.JBE oprs - -type internal OneOp77() = - inherit ParsingJob() - override _.Run(span, phlp) = - addBND phlp - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.F64) - let oprs = phlp.OprParsers[int OD.Rel8].Render(span, phlp) - newInstruction phlp Opcode.JA oprs - -type internal OneOp78() = - inherit ParsingJob() - override _.Run(span, phlp) = - addBND phlp - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.F64) - let oprs = phlp.OprParsers[int OD.Rel8].Render(span, phlp) - newInstruction phlp Opcode.JS oprs - -type internal OneOp79() = - inherit ParsingJob() - override _.Run(span, phlp) = - addBND phlp - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.F64) - let oprs = phlp.OprParsers[int OD.Rel8].Render(span, phlp) - newInstruction phlp Opcode.JNS oprs - -type internal OneOp7A() = - inherit ParsingJob() - override _.Run(span, phlp) = - addBND phlp - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.F64) - let oprs = phlp.OprParsers[int OD.Rel8].Render(span, phlp) - newInstruction phlp Opcode.JP oprs - -type internal OneOp7B() = - inherit ParsingJob() - override _.Run(span, phlp) = - addBND phlp - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.F64) - let oprs = phlp.OprParsers[int OD.Rel8].Render(span, phlp) - newInstruction phlp Opcode.JNP oprs - -type internal OneOp7C() = - inherit ParsingJob() - override _.Run(span, phlp) = - addBND phlp - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.F64) - let oprs = phlp.OprParsers[int OD.Rel8].Render(span, phlp) - newInstruction phlp Opcode.JL oprs - -type internal OneOp7D() = - inherit ParsingJob() - override _.Run(span, phlp) = - addBND phlp - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.F64) - let oprs = phlp.OprParsers[int OD.Rel8].Render(span, phlp) - newInstruction phlp Opcode.JNL oprs - -type internal OneOp7E() = - inherit ParsingJob() - override _.Run(span, phlp) = - addBND phlp - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.F64) - let oprs = phlp.OprParsers[int OD.Rel8].Render(span, phlp) - newInstruction phlp Opcode.JLE oprs - -type internal OneOp7F() = - inherit ParsingJob() - override _.Run(span, phlp) = - addBND phlp - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.F64) - let oprs = phlp.OprParsers[int OD.Rel8].Render(span, phlp) - newInstruction phlp Opcode.JG oprs - -type internal OneOp80() = - inherit ParsingJob() - override _.Run(span, phlp) = - let struct (op, oidx, szidx, szCond) = - parseGrpOpKind span phlp OD.RmSImm8 SZ.Byte OpGroup.G1 - render span phlp op szCond oidx szidx - -type internal OneOp81() = - inherit ParsingJob() - override _.Run(span, phlp) = - let struct (op, oidx, szidx, szCond) = - parseGrpOpKind span phlp OD.RmImm SZ.Def OpGroup.G1 - render span phlp op szCond oidx szidx - -type internal OneOp82() = - inherit ParsingJob() - override _.Run(span, phlp) = - let struct (op, oidx, szidx, szCond) = - parseGrpOpKind span phlp OD.RmSImm8 SZ.Byte OpGroup.G1Inv64 - render span phlp op szCond oidx szidx - -type internal OneOp83() = - inherit ParsingJob() - override _.Run(span, phlp) = - let struct (op, oidx, szidx, szCond) = - parseGrpOpKind span phlp OD.RmSImm8 SZ.Def OpGroup.G1 - render span phlp op szCond oidx szidx - -type internal OneOp84() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RmGpr].Render(span, phlp) - newInstruction phlp Opcode.TEST oprs - -type internal OneOp85() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RmGpr].Render(span, phlp) - newInstruction phlp Opcode.TEST oprs - -type internal OneOp86() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RmGpr].Render(span, phlp) - newInstruction phlp Opcode.XCHG oprs - -type internal OneOp87() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RmGpr].Render(span, phlp) - newInstruction phlp Opcode.XCHG oprs - -type internal OneOp88() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RmGpr].Render(span, phlp) - newInstruction phlp Opcode.MOV oprs - -type internal OneOp89() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RmGpr].Render(span, phlp) - newInstruction phlp Opcode.MOV oprs - -type internal OneOp8A() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.GprRm].Render(span, phlp) - newInstruction phlp Opcode.MOV oprs - -type internal OneOp8B() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.GprRm].Render(span, phlp) - newInstruction phlp Opcode.MOV oprs - -type internal OneOp8C() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Word].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RmSeg].Render(span, phlp) - newInstruction phlp Opcode.MOV oprs - -type internal OneOp8D() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.GprM].Render(span, phlp) - newInstruction phlp Opcode.LEA oprs - -type internal OneOp8E() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Word].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.SegRm].Render(span, phlp) - newInstruction phlp Opcode.MOV oprs - -type internal OneOp8F() = - inherit ParsingJob() - override _.Run(span, phlp) = - let struct (op, oidx, szidx, szCond) = - parseGrpOpKind span phlp OD.Mem SZ.Def OpGroup.G1A - render span phlp op szCond oidx szidx - -type internal OneOp90() = - inherit ParsingJob() - override _.Run(span, phlp) = - if Prefix.hasREPZ phlp.Prefixes then - render span phlp Opcode.PAUSE SzCond.Normal OD.No SZ.Def - elif REXPrefix.hasB phlp.REXPrefix then - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RaxRax].Render(span, phlp) - newInstruction phlp Opcode.XCHG oprs - else render span phlp Opcode.NOP SzCond.Normal OD.No SZ.Def - -type internal OneOp91() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RaxRcx].Render(span, phlp) - newInstruction phlp Opcode.XCHG oprs - -type internal OneOp92() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RaxRdx].Render(span, phlp) - newInstruction phlp Opcode.XCHG oprs - -type internal OneOp93() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RaxRbx].Render(span, phlp) - newInstruction phlp Opcode.XCHG oprs - -type internal OneOp94() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RaxRsp].Render(span, phlp) - newInstruction phlp Opcode.XCHG oprs - -type internal OneOp95() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RaxRbp].Render(span, phlp) - newInstruction phlp Opcode.XCHG oprs - -type internal OneOp96() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RaxRsi].Render(span, phlp) - newInstruction phlp Opcode.XCHG oprs - -type internal OneOp97() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RaxRdi].Render(span, phlp) - newInstruction phlp Opcode.XCHG oprs - -type internal OneOp98() = - inherit ParsingJob() - override _.Run(span, phlp) = - if Prefix.hasOprSz phlp.Prefixes then - render span phlp Opcode.CBW SzCond.Normal OD.No SZ.Def - elif REXPrefix.hasW phlp.REXPrefix then - render span phlp Opcode.CDQE SzCond.Normal OD.No SZ.Def - else render span phlp Opcode.CWDE SzCond.Normal OD.No SZ.Def - -type internal OneOp99() = - inherit ParsingJob() - override _.Run(span, phlp) = - if Prefix.hasOprSz phlp.Prefixes then - render span phlp Opcode.CWD SzCond.Normal OD.No SZ.Def - elif REXPrefix.hasW phlp.REXPrefix then - render span phlp Opcode.CQO SzCond.Normal OD.No SZ.Def - else render span phlp Opcode.CDQ SzCond.Normal OD.No SZ.Def - -type internal OneOp9A() = - inherit ParsingJob() - override _.Run(span, phlp) = -#if !EMULATION - ensure32 phlp -#endif - addBND phlp - phlp.SzComputers[int SZ.P].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.Dir].Render(span, phlp) - phlp.IsFar <- true - newInstruction phlp Opcode.CALL oprs - -type internal OneOp9B() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.No].Render(span, phlp) - newInstruction phlp Opcode.WAIT oprs - -type internal OneOp9C() = - inherit ParsingJob() - override _.Run(span, phlp) = - if Prefix.hasOprSz phlp.Prefixes then - let szcond = - if ParsingHelper.Is64bit phlp then SzCond.D64 else SzCond.Normal - render span phlp Opcode.PUSHF szcond OD.No SZ.Def - elif ParsingHelper.Is64bit phlp then - render span phlp Opcode.PUSHFQ SzCond.D64 OD.No SZ.Def - else render span phlp Opcode.PUSHFD SzCond.Normal OD.No SZ.Def - -type internal OneOp9D() = - inherit ParsingJob() - override _.Run(span, phlp) = - if Prefix.hasOprSz phlp.Prefixes then - let szcond = - if ParsingHelper.Is64bit phlp then SzCond.D64 else SzCond.Normal - render span phlp Opcode.POPF szcond OD.No SZ.Def - elif ParsingHelper.Is64bit phlp then - render span phlp Opcode.POPFQ SzCond.D64 OD.No SZ.Def - else render span phlp Opcode.POPFD SzCond.Normal OD.No SZ.Def - -type internal OneOp9E() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.No].Render(span, phlp) - newInstruction phlp Opcode.SAHF oprs - -type internal OneOp9F() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.No].Render(span, phlp) - newInstruction phlp Opcode.LAHF oprs - -type internal OneOpA0() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RaxFar].Render(span, phlp) - newInstruction phlp Opcode.MOV oprs - -type internal OneOpA1() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RaxFar].Render(span, phlp) - newInstruction phlp Opcode.MOV oprs - -type internal OneOpA2() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.FarRax].Render(span, phlp) - newInstruction phlp Opcode.MOV oprs - -type internal OneOpA3() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.FarRax].Render(span, phlp) - newInstruction phlp Opcode.MOV oprs - -type internal OneOpA4() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - phlp.OperationSize <- 8 - let oprs = phlp.OprParsers[int OD.No].Render(span, phlp) - if Prefix.hasREPNZ phlp.Prefixes then raise ParsingFailureException - else newInstruction phlp Opcode.MOVSB oprs - -type internal OneOpA5() = - inherit ParsingJob() - override _.Run(span, phlp) = - if Prefix.hasOprSz phlp.Prefixes then - render span phlp Opcode.MOVSW SzCond.Normal OD.No SZ.Def - elif REXPrefix.hasW phlp.REXPrefix then - render span phlp Opcode.MOVSQ SzCond.Normal OD.No SZ.Def - else render span phlp Opcode.MOVSD SzCond.Normal OD.No SZ.Def - -type internal OneOpA6() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.No].Render(span, phlp) - newInstruction phlp Opcode.CMPSB oprs - -type internal OneOpA7() = - inherit ParsingJob() - override _.Run(span, phlp) = - if Prefix.hasOprSz phlp.Prefixes then - render span phlp Opcode.CMPSW SzCond.Normal OD.No SZ.Def - elif REXPrefix.hasW phlp.REXPrefix then - render span phlp Opcode.CMPSQ SzCond.Normal OD.No SZ.Def - else render span phlp Opcode.CMPSD SzCond.Normal OD.No SZ.Def - -type internal OneOpA8() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RegImm8].Render(span, phlp) - newInstruction phlp Opcode.TEST oprs - -type internal OneOpA9() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RegImm].Render(span, phlp) - newInstruction phlp Opcode.TEST oprs - -type internal OneOpAA() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - phlp.OperationSize <- 8 - let oprs = phlp.OprParsers[int OD.No].Render(span, phlp) - newInstruction phlp Opcode.STOSB oprs - -type internal OneOpAB() = - inherit ParsingJob() - override _.Run(span, phlp) = - if Prefix.hasOprSz phlp.Prefixes then - render span phlp Opcode.STOSW SzCond.Normal OD.No SZ.Def - elif REXPrefix.hasW phlp.REXPrefix then - render span phlp Opcode.STOSQ SzCond.Normal OD.No SZ.Def - else render span phlp Opcode.STOSD SzCond.Normal OD.No SZ.Def - -type internal OneOpAC() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - phlp.OperationSize <- 8 - let oprs = phlp.OprParsers[int OD.No].Render(span, phlp) - newInstruction phlp Opcode.LODSB oprs - -type internal OneOpAD() = - inherit ParsingJob() - override _.Run(span, phlp) = - if Prefix.hasOprSz phlp.Prefixes then - render span phlp Opcode.LODSW SzCond.Normal OD.No SZ.Def - elif REXPrefix.hasW phlp.REXPrefix then - render span phlp Opcode.LODSQ SzCond.Normal OD.No SZ.Def - else render span phlp Opcode.LODSD SzCond.Normal OD.No SZ.Def - -type internal OneOpAE() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - phlp.OperationSize <- 8 - let oprs = phlp.OprParsers[int OD.No].Render(span, phlp) - newInstruction phlp Opcode.SCASB oprs - -type internal OneOpAF() = - inherit ParsingJob() - override _.Run(span, phlp) = - if Prefix.hasOprSz phlp.Prefixes then - render span phlp Opcode.SCASW SzCond.Normal OD.No SZ.Def - elif REXPrefix.hasW phlp.REXPrefix then - render span phlp Opcode.SCASQ SzCond.Normal OD.No SZ.Def - else render span phlp Opcode.SCASD SzCond.Normal OD.No SZ.Def - -type internal OneOpB0() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.ALImm8].Render(span, phlp) - newInstruction phlp Opcode.MOV oprs - -type internal OneOpB1() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.CLImm8].Render(span, phlp) - newInstruction phlp Opcode.MOV oprs - -type internal OneOpB2() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.DLImm8].Render(span, phlp) - newInstruction phlp Opcode.MOV oprs - -type internal OneOpB3() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.BLImm8].Render(span, phlp) - newInstruction phlp Opcode.MOV oprs - -type internal OneOpB4() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.AhImm8].Render(span, phlp) - newInstruction phlp Opcode.MOV oprs - -type internal OneOpB5() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.ChImm8].Render(span, phlp) - newInstruction phlp Opcode.MOV oprs - -type internal OneOpB6() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.DhImm8].Render(span, phlp) - newInstruction phlp Opcode.MOV oprs - -type internal OneOpB7() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.BhImm8].Render(span, phlp) - newInstruction phlp Opcode.MOV oprs - -type internal OneOpB8() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RaxImm].Render(span, phlp) - newInstruction phlp Opcode.MOV oprs - -type internal OneOpB9() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RcxImm].Render(span, phlp) - newInstruction phlp Opcode.MOV oprs - -type internal OneOpBA() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RdxImm].Render(span, phlp) - newInstruction phlp Opcode.MOV oprs - -type internal OneOpBB() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RbxImm].Render(span, phlp) - newInstruction phlp Opcode.MOV oprs - -type internal OneOpBC() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RspImm].Render(span, phlp) - newInstruction phlp Opcode.MOV oprs - -type internal OneOpBD() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RbpImm].Render(span, phlp) - newInstruction phlp Opcode.MOV oprs - -type internal OneOpBE() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RsiImm].Render(span, phlp) - newInstruction phlp Opcode.MOV oprs - -type internal OneOpBF() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RdiImm].Render(span, phlp) - newInstruction phlp Opcode.MOV oprs - -type internal OneOpC0() = - inherit ParsingJob() - override _.Run(span, phlp) = - let struct (op, oidx, szidx, szCond) = - parseGrpOpKind span phlp OD.RmSImm8 SZ.Byte OpGroup.G2 - render span phlp op szCond oidx szidx - -type internal OneOpC1() = - inherit ParsingJob() - override _.Run(span, phlp) = - let struct (op, oidx, szidx, szCond) = - parseGrpOpKind span phlp OD.RmSImm8 SZ.Def OpGroup.G2 - render span phlp op szCond oidx szidx - -type internal OneOpC2() = - inherit ParsingJob() - override _.Run(span, phlp) = - addBND phlp - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.F64) - let oprs = phlp.OprParsers[int OD.Imm16].Render(span, phlp) - newInstruction phlp Opcode.RET oprs - -type internal OneOpC3() = - inherit ParsingJob() - override _.Run(span, phlp) = - addBND phlp - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.F64) - let oprs = phlp.OprParsers[int OD.No].Render(span, phlp) - newInstruction phlp Opcode.RET oprs - -type internal OneOpC4() = - inherit ParsingJob() - override _.Run(span, phlp) = - if (phlp.WordSize = WordSize.Bit64) || (phlp.PeekByte span >= 0xC0uy) then - let mutable rex = phlp.REXPrefix - let vInfo = getThreeVEXInfo span &rex phlp.CurrPos - phlp.VEXInfo <- Some vInfo - phlp.REXPrefix <- rex - phlp.CurrPos <- phlp.CurrPos + 2 - match vInfo.VEXType with - | VEXType.TwoByteOp -> parseTwoByteOpcode span phlp - | VEXType.ThreeByteOpOne -> parseThreeByteOp1 span phlp - | VEXType.ThreeByteOpTwo -> parseThreeByteOp2 span phlp - | _ -> raise ParsingFailureException - else - phlp.SzComputers[int SZ.PZ].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.GprM].Render(span, phlp) - newInstruction phlp Opcode.LES oprs - -type internal OneOpC5() = - inherit ParsingJob() - override _.Run(span, phlp) = - if (phlp.WordSize = WordSize.Bit64) || (phlp.PeekByte span >= 0xC0uy) then - let mutable rex = phlp.REXPrefix - phlp.VEXInfo <- Some(getTwoVEXInfo span &rex phlp.CurrPos) - phlp.REXPrefix <- rex - phlp.CurrPos <- phlp.CurrPos + 1 - parseTwoByteOpcode span phlp - else - phlp.SzComputers[int SZ.PZ].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.GprM].Render(span, phlp) - newInstruction phlp Opcode.LDS oprs - -type internal OneOpC6() = - inherit ParsingJob() - override _.Run(span, phlp) = - let struct (op, oidx, szidx, szCond) = - parseGrpOpKind span phlp OD.RmSImm8 SZ.Byte OpGroup.G11A - render span phlp op szCond oidx szidx - -type internal OneOpC7() = - inherit ParsingJob() - override _.Run(span, phlp) = - let struct (op, oidx, szidx, szCond) = - parseGrpOpKind span phlp OD.RmImm SZ.Def OpGroup.G11B - render span phlp op szCond oidx szidx - -type internal OneOpC8() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.ImmImm].Render(span, phlp) - newInstruction phlp Opcode.ENTER oprs - -type internal OneOpC9() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.D64) - let oprs = phlp.OprParsers[int OD.No].Render(span, phlp) - newInstruction phlp Opcode.LEAVE oprs - -type internal OneOpCA() = - inherit ParsingJob() - override _.Run(span, phlp) = - addBND phlp - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.Imm16].Render(span, phlp) - phlp.IsFar <- true - newInstruction phlp Opcode.RET oprs - -type internal OneOpCB() = - inherit ParsingJob() - override _.Run(span, phlp) = - addBND phlp - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.No].Render(span, phlp) - phlp.IsFar <- true - newInstruction phlp Opcode.RET oprs - -type internal OneOpCC() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.No].Render(span, phlp) - newInstruction phlp Opcode.INT3 oprs - -type internal OneOpCD() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.Imm8].Render(span, phlp) - newInstruction phlp Opcode.INT oprs - -type internal OneOpCE() = - inherit ParsingJob() - override _.Run(span, phlp) = -#if !EMULATION - ensure32 phlp -#endif - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.No].Render(span, phlp) - newInstruction phlp Opcode.INTO oprs - -type internal OneOpCF() = - inherit ParsingJob() - override _.Run(span, phlp) = - if Prefix.hasOprSz phlp.Prefixes then - render span phlp Opcode.IRETW SzCond.Normal OD.No SZ.Def - elif REXPrefix.hasW phlp.REXPrefix then - render span phlp Opcode.IRETQ SzCond.Normal OD.No SZ.Def - else render span phlp Opcode.IRETD SzCond.Normal OD.No SZ.Def - -type internal OneOpD0() = - inherit ParsingJob() - override _.Run(span, phlp) = - let struct (op, oidx, szidx, szCond) = - parseGrpOpKind span phlp OD.M1 SZ.Byte OpGroup.G2 - render span phlp op szCond oidx szidx - -type internal OneOpD1() = - inherit ParsingJob() - override _.Run(span, phlp) = - let struct (op, oidx, szidx, szCond) = - parseGrpOpKind span phlp OD.M1 SZ.Def OpGroup.G2 - render span phlp op szCond oidx szidx - -type internal OneOpD2() = - inherit ParsingJob() - override _.Run(span, phlp) = - let struct (op, oidx, szidx, szCond) = - parseGrpOpKind span phlp OD.RmCL SZ.Byte OpGroup.G2 - render span phlp op szCond oidx szidx - -type internal OneOpD3() = - inherit ParsingJob() - override _.Run(span, phlp) = - let struct (op, oidx, szidx, szCond) = - parseGrpOpKind span phlp OD.RmCL SZ.Def OpGroup.G2 - render span phlp op szCond oidx szidx - -type internal OneOpD4() = - inherit ParsingJob() - override _.Run(span, phlp) = -#if !EMULATION - ensure32 phlp -#endif - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.Imm8].Render(span, phlp) - newInstruction phlp Opcode.AAM oprs - -type internal OneOpD5() = - inherit ParsingJob() - override _.Run(span, phlp) = -#if !EMULATION - ensure32 phlp -#endif - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.Imm8].Render(span, phlp) - newInstruction phlp Opcode.AAD oprs - -type internal OneOpD6() = - inherit ParsingJob() - override _.Run(_, _) = raise ParsingFailureException - -type internal OneOpD7() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.No].Render(span, phlp) - newInstruction phlp Opcode.XLATB oprs - -type internal OneOpD8() = - inherit ParsingJob() - override _.Run(span, phlp) = - let modRM = phlp.ReadByte span - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - if modRM <= 0xBFuy then - let op = getD8OpWithin00toBF modRM - let effOprSize = getEscEffOprSizeByESCOp 0xD8uy - phlp.MemEffOprSize <- effOprSize - phlp.MemEffRegSize <- effOprSize - let o = OperandParsers.parseMemory modRM span phlp - newInstruction phlp op (OneOperand o) - else - let opcode, oprs = getD8OverBF modRM - newInstruction phlp opcode oprs - -type internal OneOpD9() = - inherit ParsingJob() - override _.Run(span, phlp) = - let modRM = phlp.ReadByte span - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - if modRM <= 0xBFuy then - let op = getD9OpWithin00toBF modRM - let effOprSize = Operands.getReg modRM |> getD9EscEffOprSizeByModRM - phlp.MemEffOprSize <- effOprSize - phlp.MemEffRegSize <- effOprSize - let o = OperandParsers.parseMemory modRM span phlp - newInstruction phlp op (OneOperand o) - else - let opcode, oprs = getD9OverBF modRM - newInstruction phlp opcode oprs - -type internal OneOpDA() = - inherit ParsingJob() - override _.Run(span, phlp) = - let modRM = phlp.ReadByte span - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - if modRM <= 0xBFuy then - let op = getDAOpWithin00toBF modRM - let effOprSize = getEscEffOprSizeByESCOp 0xDAuy - phlp.MemEffOprSize <- effOprSize - phlp.MemEffRegSize <- effOprSize - let o = OperandParsers.parseMemory modRM span phlp - newInstruction phlp op (OneOperand o) - else - let opcode, oprs = getDAOverBF modRM - newInstruction phlp opcode oprs - -type internal OneOpDB() = - inherit ParsingJob() - override _.Run(span, phlp) = - let modRM = phlp.ReadByte span - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - if modRM <= 0xBFuy then - let op = getDBOpWithin00toBF modRM - let effOprSize = Operands.getReg modRM |> getDBEscEffOprSizeByModRM - phlp.MemEffOprSize <- effOprSize - phlp.MemEffRegSize <- effOprSize - let o = OperandParsers.parseMemory modRM span phlp - newInstruction phlp op (OneOperand o) - else - let opcode, oprs = getDBOverBF modRM - newInstruction phlp opcode oprs - -type internal OneOpDC() = - inherit ParsingJob() - override _.Run(span, phlp) = - let modRM = phlp.ReadByte span - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - if modRM <= 0xBFuy then - let op = getDCOpWithin00toBF modRM - let effOprSize = getEscEffOprSizeByESCOp 0xDCuy - phlp.MemEffOprSize <- effOprSize - phlp.MemEffRegSize <- effOprSize - let o = OperandParsers.parseMemory modRM span phlp - newInstruction phlp op (OneOperand o) - else - let opcode, oprs = getDCOverBF modRM - newInstruction phlp opcode oprs - -type internal OneOpDD() = - inherit ParsingJob() - override _.Run(span, phlp) = - let modRM = phlp.ReadByte span - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - if modRM <= 0xBFuy then - let op = getDDOpWithin00toBF modRM - let effOprSize = Operands.getReg modRM |> getDDEscEffOprSizeByModRM - phlp.MemEffOprSize <- effOprSize - phlp.MemEffRegSize <- effOprSize - let o = OperandParsers.parseMemory modRM span phlp - newInstruction phlp op (OneOperand o) - else - let opcode, oprs = getDDOverBF modRM - newInstruction phlp opcode oprs - -type internal OneOpDE() = - inherit ParsingJob() - override _.Run(span, phlp) = - let modRM = phlp.ReadByte span - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - if modRM <= 0xBFuy then - let op = getDEOpWithin00toBF modRM - let effOprSize = getEscEffOprSizeByESCOp 0xDEuy - phlp.MemEffOprSize <- effOprSize - phlp.MemEffRegSize <- effOprSize - let o = OperandParsers.parseMemory modRM span phlp - newInstruction phlp op (OneOperand o) - else - let opcode, oprs = getDEOverBF modRM - newInstruction phlp opcode oprs - -type internal OneOpDF() = - inherit ParsingJob() - override _.Run(span, phlp) = - let modRM = phlp.ReadByte span - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - if modRM <= 0xBFuy then - let op = getDFOpWithin00toBF modRM - let effOprSize = Operands.getReg modRM |> getDFEscEffOprSizeByModRM - phlp.MemEffOprSize <- effOprSize - phlp.MemEffRegSize <- effOprSize - let o = OperandParsers.parseMemory modRM span phlp - newInstruction phlp op (OneOperand o) - else - let opcode, oprs = getDFOverBF modRM - newInstruction phlp opcode oprs - -type internal OneOpE0() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.F64) - let oprs = phlp.OprParsers[int OD.Rel8].Render(span, phlp) - newInstruction phlp Opcode.LOOPNE oprs - -type internal OneOpE1() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.F64) - let oprs = phlp.OprParsers[int OD.Rel8].Render(span, phlp) - newInstruction phlp Opcode.LOOPE oprs - -type internal OneOpE2() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.F64) - let oprs = phlp.OprParsers[int OD.Rel8].Render(span, phlp) - newInstruction phlp Opcode.LOOP oprs - -type internal OneOpE3() = - inherit ParsingJob() - override _.Run(span, phlp) = - if Prefix.hasAddrSz phlp.Prefixes then - let opcode = - if ParsingHelper.Is64bit phlp then Opcode.JECXZ else Opcode.JCXZ - render span phlp opcode SzCond.F64 OD.Rel8 SZ.Byte - elif ParsingHelper.Is64bit phlp then - render span phlp Opcode.JRCXZ SzCond.F64 OD.Rel8 SZ.Byte - else render span phlp Opcode.JECXZ SzCond.F64 OD.Rel8 SZ.Byte - -type internal OneOpE4() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RegImm8].Render(span, phlp) - newInstruction phlp Opcode.IN oprs - -type internal OneOpE5() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.REXPrefix <- REXPrefix.NOREX - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.RegImm8].Render(span, phlp) - newInstruction phlp Opcode.IN oprs - -type internal OneOpE6() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.Imm8Reg].Render(span, phlp) - newInstruction phlp Opcode.OUT oprs - -type internal OneOpE7() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.REXPrefix <- REXPrefix.NOREX - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.Imm8Reg].Render(span, phlp) - newInstruction phlp Opcode.OUT oprs - -type internal OneOpE8() = - inherit ParsingJob() - override _.Run(span, phlp) = - addBND phlp - phlp.SzComputers[int SZ.D64].Render(phlp, SzCond.F64) - let oprs = phlp.OprParsers[int OD.Rel].Render(span, phlp) - newInstruction phlp Opcode.CALL oprs - -type internal OneOpE9() = - inherit ParsingJob() - override _.Run(span, phlp) = - addBND phlp - phlp.SzComputers[int SZ.D64].Render(phlp, SzCond.F64) - let oprs = phlp.OprParsers[int OD.Rel].Render(span, phlp) - newInstruction phlp Opcode.JMP oprs - -type internal OneOpEA() = - inherit ParsingJob() - override _.Run(span, phlp) = -#if !EMULATION - ensure32 phlp -#endif - addBND phlp - phlp.SzComputers[int SZ.P].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.Dir].Render(span, phlp) - phlp.IsFar <- true - newInstruction phlp Opcode.JMP oprs - -type internal OneOpEB() = - inherit ParsingJob() - override _.Run(span, phlp) = - addBND phlp - phlp.SzComputers[int SZ.Byte].Render(phlp, SzCond.F64) - let oprs = phlp.OprParsers[int OD.Rel8].Render(span, phlp) - newInstruction phlp Opcode.JMP oprs - -type internal OneOpEC() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.ALDx].Render(span, phlp) - newInstruction phlp Opcode.IN oprs - -type internal OneOpED() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.EaxDx].Render(span, phlp) - newInstruction phlp Opcode.IN oprs - -type internal OneOpEE() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.DxAL].Render(span, phlp) - newInstruction phlp Opcode.OUT oprs - -type internal OneOpEF() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.DxEax].Render(span, phlp) - newInstruction phlp Opcode.OUT oprs - -type internal OneOpF0() = - inherit ParsingJob() - override _.Run(_, _) = raise ParsingFailureException - -type internal OneOpF1() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.Normal) - let oprs = phlp.OprParsers[int OD.No].Render(span, phlp) - newInstruction phlp Opcode.INT1 oprs - -type internal OneOpF2() = - inherit ParsingJob() - override _.Run(_, _) = raise ParsingFailureException - -type internal OneOpF3() = - inherit ParsingJob() - override _.Run(_, _) = raise ParsingFailureException - -type internal OneOpF4() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.F64) - let oprs = phlp.OprParsers[int OD.No].Render(span, phlp) - newInstruction phlp Opcode.HLT oprs - -type internal OneOpF5() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.F64) - let oprs = phlp.OprParsers[int OD.No].Render(span, phlp) - newInstruction phlp Opcode.CMC oprs - -type internal OneOpF6() = - inherit ParsingJob() - override _.Run(span, phlp) = - let struct (op, oidx, szidx, szCond) = - parseGrpOpKind span phlp OD.Mem SZ.Byte OpGroup.G3A - render span phlp op szCond oidx szidx - -type internal OneOpF7() = - inherit ParsingJob() - override _.Run(span, phlp) = - let struct (op, oidx, szidx, szCond) = - parseGrpOpKind span phlp OD.Mem SZ.Def OpGroup.G3B - render span phlp op szCond oidx szidx - -type internal OneOpF8() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.F64) - let oprs = phlp.OprParsers[int OD.No].Render(span, phlp) - newInstruction phlp Opcode.CLC oprs - -type internal OneOpF9() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.F64) - let oprs = phlp.OprParsers[int OD.No].Render(span, phlp) - newInstruction phlp Opcode.STC oprs - -type internal OneOpFA() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.F64) - let oprs = phlp.OprParsers[int OD.No].Render(span, phlp) - newInstruction phlp Opcode.CLI oprs - -type internal OneOpFB() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.F64) - let oprs = phlp.OprParsers[int OD.No].Render(span, phlp) - newInstruction phlp Opcode.STI oprs - -type internal OneOpFC() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.F64) - let oprs = phlp.OprParsers[int OD.No].Render(span, phlp) - newInstruction phlp Opcode.CLD oprs - -type internal OneOpFD() = - inherit ParsingJob() - override _.Run(span, phlp) = - phlp.SzComputers[int SZ.Def].Render(phlp, SzCond.F64) - let oprs = phlp.OprParsers[int OD.No].Render(span, phlp) - newInstruction phlp Opcode.STD oprs - -type internal OneOpFE() = - inherit ParsingJob() - override _.Run(span, phlp) = - let struct (op, oidx, szidx, szCond) = - parseGrpOpKind span phlp OD.No SZ.Def OpGroup.G4 - render span phlp op szCond oidx szidx - -type internal OneOpFF() = - inherit ParsingJob() - override _.Run(span, phlp) = - let struct (op, oidx, szidx, szCond) = - parseGrpOpKind span phlp OD.No SZ.Def OpGroup.G5 - if Opcode.isBranch op then addBND phlp else () - render span phlp op szCond oidx szidx diff --git a/src/RearEnd/BinDisasm/Program.fs b/src/RearEnd/BinDisasm/Program.fs index cfec6c7a..7b41e98e 100644 --- a/src/RearEnd/BinDisasm/Program.fs +++ b/src/RearEnd/BinDisasm/Program.fs @@ -202,18 +202,18 @@ let private dumpHexString (opts: BinDisasmOpts) = let private disasm files (opts: BinDisasmOpts) = CmdOpts.sanitizeRestArgs files -#if DEBUG +//#if DEBUG let sw = Diagnostics.Stopwatch.StartNew() -#endif +//#endif try if Array.isEmpty opts.InputHexStr then dumpFiles files opts else dumpHexString opts finally Log.Out.Flush() -#if DEBUG +//#if DEBUG sw.Stop() Console.Error.WriteLine $"Total dump time: {sw.Elapsed.TotalSeconds} sec." -#endif +//#endif [] let main args =